20008 - Clues

当福尔摩斯在调查另一起犯罪时,他发现了若干线索。同时,他已经找到了其中一些线索之间的直接联系。线索之间的直接联系是互相的。也就是说,线索 AB 之间的直接联系与 BA 之间的直接联系是同一条联系。两个线索之间至多只会有一条直接联系。

当然,福尔摩斯能够找到所有线索之间的直接联系。但这会花费太多时间,罪犯可能会利用这段额外的时间藏匿起来。为了破案,福尔摩斯需要让每一个线索都能够与所有其他线索相关联(可能不是直接联系,也可能通过其他线索间接联系)。如果存在线索 C,使得 AC 有直接联系,且 C 能够与 B 相关联,那么 AB 也被认为是相关联的。

福尔摩斯计算了他最少还需要去寻找的直接联系的数量,用 T 表示。

请计算有多少种不同的方法恰好寻找 T 条直接联系,使最终所有线索都能关联起来。若存在两种方案,使得某一对线索在一种方案中有直接联系,在另一种方案中没有直接联系,则认为这两种方案是不同的。

由于答案可能很大,请输出其对 k 取模的结果。

输入

第一行包含三个用空格分隔的整数 n,m,k1 \leq n \leq 10^{5}0 \leq m \leq 10^{5}1 \leq k \leq 10^{9})——线索的数量、福尔摩斯已找到的直接联系数量和取模的数。

接下来的 m 行中,每行包含两个整数 ab1 \leq a,b \leq n,a \neq b),表示线索 ab 之间有直接联系。保证任意两条线索之间至多只有一条直接联系。注意,线索之间直接联系是互相的。

输出

输出一个整数,表示答案对 k 取模后的结果。

样例

输入

2 0 1000000000

输出

1

输入

3 0 100

输出

3

输入

4 1 1000000000
1 4

输出

8

提示

第一个样例只有两个线索,福尔摩斯还没有发现它们之间的任何直接联系。唯一的办法是去寻找一条联系。

第二个样例有三个线索,福尔摩斯还没有发现它们之间的任何直接联系。他需要在人为三条可能的直接联系中找到两条,才可以破案——有 3 种方式。

第三个样例有四个线索,侦探已经找到了第一个和第四个线索之间的一条直接联系。还有 8 种方式可以找到剩下两条联系,从而使所有线索关联起来。

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