给定一棵拥有 $n$ 个节点的有根树。我们要用数字 $1, 2, \dots, n$ 给这些节点打上标记,使得每个标记都是唯一的,且满足堆性质,即任意节点的标记都小于其父节点的标记。问有多少种这样的标记方案?由于这个数量可能非常大,请仅计算其模 $m$ 的余数。
输入格式
输入包含多组测试数据(即多棵树的描述)。第一行包含输入树的数量 $t$ ($t \le 250$)。
每棵树的描述首先包含一行,其中有两个整数:树的大小 $n$ ($1 \le n \le 500000$) 和一个整数 $m$ ($2 \le m \le 10^9$)。
接下来的 $n - 1$ 行中,第 $i$ 行包含一个整数 $p(i + 1)$,表示第 $i + 1$ 个节点的父节点编号 ($1 \le p(i + 1) \le i$)。
在每棵树中,1 号节点均为根节点,因此不会给出其父节点。
输入数据的总大小不会超过 50MB。
输出格式
对于每棵树,输出其合法标记方案数模 $m$ 的余数。
样例
输入样例 1
4 3 1000000 1 1 4 1000000 1 1 1 5 1000000 1 2 3 4 5 1000000 1 1 3 3
输出样例 1
2 6 1 8
说明
最后一个样例测试数据的 8 种可能标记方案如下: