#CF1994E. Wooden Game

Wooden Game

伐木游戏

时间限制:2 秒
空间限制:256 MB

给定一个有 kk 棵有根树的森林∗。伐木工 Timofey 想要砍伐整个森林,他可以执行以下操作:

  • 选择任意一棵树的任意顶点的一个子树†,并将其从树中移除。

Timofey 喜欢按位运算,他希望他所移除的子树的大小之按位或尽可能大。帮助他求出能获得的最大结果。

∗ 树是一张无环、无自环、无重边的连通图。在有根树中,选定的顶点称为根。森林是一棵或多棵树的集合。

† 一个顶点 vv 的子树是这样的顶点集合:这些顶点到根的路径上都包含 vv,包括 vv 本身。

输入格式

每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例数。接下来是各个测试用例的描述。

每个测试用例的第一行包含一个整数 kk1k1061 \le k \le 10^6)—— 森林中树的数量。

接下来是每棵树的描述:

  • 第一行包含一个整数 nn1n1061 \le n \le 10^6)—— 树的大小。树的顶点编号为 11nn,根顶点为 11
  • 第二行包含 n1n-1 个整数 p2,p3,,pnp_2, p_3, \dots, p_n1pi<i1 \le p_i < i),其中 pip_i 是顶点 ii 的父节点。

保证所有输入数据的 kknn 之和不超过 10610^6

输出格式

对于每个测试用例,输出一个整数 —— 能获得的最大结果。

样例输入

3
1
1

2
4
1 2 2
6
1 1 3 1 3
1
10
1 2 2 1 1 5 7 6 4

样例输出

1
7
10

样例解释

第二个测试用例:两棵树如图所示。

第一次操作移除整棵第二棵树(大小为 66)。

第二次操作从第一棵树中移除顶点 44 的子树(大小为 11)。

第三次操作移除整棵第一棵树(大小为 33)。 结果为 613=76 \mid 1 \mid 3 = 7\mid 表示按位或)。

第三个测试用例:需要移除整棵树(大小为 1010)。