4167 - 排队

题目描述

小杨所在班级共有 n 位同学,依次以 1,2, \dots , n标号。这 n 位同学想排成一行队伍,其中有些同学之间关系非常好,在队伍里需要排在相邻的位置。具体来说,有 m 对这样的关系( m 是⼀个非负整数)。当 m \ge 1 时,第 i 对关系(1 \le i \le m)给出 a_i,b_i,表示排队时编号为 a_i 的同学需要排在编号为 b_i 的同学前面,并且两人在队伍中相邻。

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

输入

第一行,两个整数 n,m,分别表示同学们的数量与关系数量。 接下来 m 行,每行两个整数 ,表示一对关系。

输出

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

样例

输入

4 2
1 3 
2 4

输出

2

输入

3 0

输出

6

输入

3 2
1 2
2 1

输出

0
说明

【数据范围】

对于 20 \% 的测试数据点,保证 1 \le n \le 8, 0 \le m \le 10

对于另外 20 \% 的测试数据点,保证 1 \le n \le 10^3, 0 \le m \le 1

对于所有测试数据点,保证 1 \le n \le 2 \times 10^5, 0 \le m \le 2 \times 10^5

来源

GESP 2024年12月认证 C++ 8级真题

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 46
通过人数 16
金币数量 2 枚
难度 基础


上一题 下一题