#105. 排队

排队

题目描述

小杨所在班级共有 nn 位同学,依次以 11nn 标号。这 nn 位同学想排成一行队伍,其中有些同学之间关系非常好,在队伍里需要排在相邻的位置。具体来说,有 mm 对这样的关系(mm 是一个非负整数)。当 m>0m > 0 时,第 ii 对关系给出 ai,bia_i, b_i,表示排队时编号为 aia_i 的同学需要排在编号为 bib_i 的同学前面,并且两人在队伍中相邻。

现在小杨想知道总共有多少种排队方式。由于答案可能很大,你只需要求出答案对 109+710^9+7 取模的结果。

输入格式

第一行,两个整数 n,mn, m,分别表示同学们的数量与关系数量。

接下来 mm 行,每行两个整数 ai,bia_i, b_i,表示一对关系。

输出格式

一行,一个整数,表示答案对 109+710^9+7 取模的结果。

样例

输入样例 1:

4 2
1 3
2 4

输出样例 1:

2

输入样例 2:

3 0

输出样例 2:

6

输入样例 3:

3 2
1 2
2 1

输出样例 3:

0

样例解释

对于样例 2,33 位同学可以任意排,因此共有 3!=63! = 6 种排队方式。

数据范围

对于所有测试数据点,保证 1n2×1051 \le n \le 2 \times 10^50m2×1050 \le m \le 2 \times 10^5