84400 - Problem c

n 个人安排座位,先给每个人一个 1\thicksim n 的编号,设第 i 个人的编号为 a_i(不同人的编号可以相同)。

接着从第一个人开始,大家依次入座,第 i 个人来了以后尝试坐到 a_i,如果 a_i 被占据了,就尝试 a_i+1a_i+1 也被占据了的话就尝试 a_i+2……,如果一直尝试到第 n 个都不行,该安排方案就不合法。

然而有 m 个人的编号已经确定(他们或许贿赂了你的上司...),你只能安排剩下的人的编号,求有多少种合法的安排方案。

由于答案可能很大,只需输出其除以 M 后的余数即可。

输入

第一行一个整数 T,表示数据组数。

对于每组数据,第一行有三个整数,分别表示 nmM

m 不为 0,则接下来一行有 m 对整数,p_1q_1p_2q_2,..., p_mq_m,其中第 i 对整数 p_iq_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\% 的数据,保证

  • 1 \leq T \leq 10
  • 1 \leq n \leq 3000 \leq m \leq n2 \leq M \leq 10^9
  • 1 \leq p_iq_i \leq n
  • p_i 互不相同。

来源

河南省选

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题