20096 - 队列问题
时间限制 : 1 秒
内存限制 : 128 MB
小明和他的小伙伴要拍照,他们中的某些人要站在一起,比如说有甲乙丙丁和小明五个人,甲想和小明站在一起,同时乙也想和小明站在一起,那么甲,乙和小明就属于同一组,同一组内就在拍照队列中处于连续的位置,那么下面6种情况都是可以的
- 甲 乙 小明
- 甲 小明 乙
- 乙 甲 小明
- 乙 小明 甲
- 小明 甲 乙
- 小明 乙 甲
并不强制要求甲乙与小明必须完全相邻。求由多少种不同的排列拍照方案。
输入
第一行包含两个整数 n 和 m,分别表示总人数和请求数。
人的编号为 1 到 n。
接下来 m 行,每行两个整数 u, v,表示 u 想和 v 站在一起(相邻)。
输出
输出一个整数,表示满足所有请求的排列方案数对 10^9+7 取模的结果。
样例
输入
5 3 1 2 1 3 1 4
输出
48
提示
数据范围
- 1 \le n \le 10^5
- 0 \le m \le 10^5
- 1 \le u, v \le n
- 保证请求不产生矛盾