[HNOI2008]Cards
小春现在很清闲,面对书桌上的 张牌,他决定给每张牌染色。目前小春只有三种颜色:红色、蓝色、绿色。
他询问 Sun 有多少种染色方案,Sun 很快就给出了答案。进一步,小春要求染出 张红色、 张蓝色、 张绿色,他又询问有多少种方案,Sun 想了一下,又给出了正确答案。
最后小春发明了 种不同的洗牌法,这里他又问 Sun 有多少种不同的染色方案。两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种。
Sun 发现这个问题有点难度,决定交给你。答案可能很大,只要求出答案除以 的余数( 为质数)。
输入格式
第一行输入 个整数 ,其中 。
接下来 行,每行描述一种洗牌法:每行有 个用空格隔开的整数 ,恰为 到 的一个排列,表示使用这种洗牌法后,第 位变为原来的第 位的牌。
输入数据保证任意多次洗牌都可用这 种洗牌法中的一种代替,且对每种洗牌法,都存在一种洗牌法使得能回到原状态。
输出格式
输出一行一个整数,表示不同染法的数目除以 的余数。
样例输入
1 1 1 2 7
2 3 1
3 1 2
样例输出
2
样例解释
共有 种本质上不同的染色法: 和 。
使用洗牌法 一次,可由它们分别得到 和 ;使用洗牌法 一次,可分别得到 和 。
数据范围
对于 的数据:
- ,,且 为质数;
- 。
来源与许可
本题为 HNOI 2008 试题「Cards」,题面与测试数据整理自 BZOJ 1004。
样例 1
输入
1 1 1 2 7
2 3 1
3 1 2
输出
2