给 n 个人安排座位,先给每个人一个 1\thicksim n 的编号,设第 i 个人的编号为 a_i(不同人的编号可以相同)。
接着从第一个人开始,大家依次入座,第 i 个人来了以后尝试坐到 a_i,如果 a_i 被占据了,就尝试 a_i+1,a_i+1 也被占据了的话就尝试 a_i+2……,如果一直尝试到第 n 个都不行,该安排方案就不合法。
然而有 m 个人的编号已经确定(他们或许贿赂了你的上司...),你只能安排剩下的人的编号,求有多少种合法的安排方案。
由于答案可能很大,只需输出其除以 M 后的余数即可。
第一行一个整数 T,表示数据组数。
对于每组数据,第一行有三个整数,分别表示 n、m、M。
若 m 不为 0,则接下来一行有 m 对整数,p_1、q_1,p_2、q_2,..., p_m、q_m,其中第 i 对整数 p_i、q_i 表示第 p_i 个人的编号必须为 q_i。
对于每组数据输出一行,若是有解则输出 YES,后跟一个整数表示方案数 \bmod M,注意,YES 和数之间只有一个空格,否则输出 NO。
2 4 3 10 1 2 2 1 3 1 10 3 8882 7 9 2 9 5 10
YES 4 NO
对于 100\% 的数据,保证
河南省选