U247251 【9.24考试】防爆零的题

题目背景

来自一只蒟蒻 额,虽然出题人当人,但奈何老师不当人,输出0的那个数据被老师删了,所以没有保底分

题目描述

这是一个可能防爆零的题。 明良明影是土土町最大黑恶势力——拜手教的老大。 他的生活非常的有规 律, 所以每天都恰好有 N 个任务要完成。 而作为一个合格的老大,明良明影是绝对不会自己干活的, 他一般让他的 M 个得力手下去代替他干。 N 个任务几乎涵盖了各方面(从去面包店买面包到对抗嘟拉怪) 这已经够糟糕了。 更糟糕的事情是明良明影非常追求完美, 所以他希望 N 个任务要完成 的好, 于是对于每个任务明良明影都会试图挑出两位在该方面表现最优秀的得力 手下作为候选者。 ——可能某个手下是真的很大佬, 他会同时成为一大堆任务的 候选人, 也有可能某个手下是真的很蒟蒻, 他不是任何一个任务的候选人。 也有 可能某些任务是真的很高难度(比如炸救护车) , 所以明良明影最终只挑出了一 个候选人(这个任务非某个人不可) 。 对于每个任务, 明良明影都要选择一位候选人去完成它。 当然每个手下最多只能做一个任务, 无论任务有多简单或者这个手下有多大佬。 明良明影想知道他 有多少种方案去安排所有的计划, 方案可能会很多, 请对10^9+7取模, 当然也有 可能完全没有方案, 请输出 0。

输入格式

第一行有两个数字, 分别是 N , M , 表示任务数和手下数 接下来有 N 行, 每行两个数字 a,b( 0  a,b  M ) 第i+1行表示第i个任务的候选人分别是 a和b 如果此时 a==b, 意味着这个任务十分高难度, 只能由 a这个人来完成

输出格式

输出有多少种安排计划的方法

说明/提示

对于 30%的数据, 1