【题目描述】
一个登山爱好者,今天他来到了黄山。
俗话说的好,不走回头路。所以在黄山,你只能往前走,或者往上走。并且很显然的是,当你走到山脊的时候,你不能够往上走,你只能往前走一步再往上走。
抽象一点而言就是,你可以把黄山视为一个N×N格点图,从(0,0)开始出发,要走到(N,N)。当他走到位置(x,y)的时候,可以往(x+1,y)或(x,y+1)走,并且当他走到(x,x)的时候,由于他已经处在了山脊上,所以他不能够往(x,x+1)方向上走。
当他兴致勃勃准备开始爬山的时候,他的同伴告诉他,黄山由于年久失修,有一些位置出现了大坑,不能走。他觉得更刺激了,但他想先知道他能有多少种方式走到黄山顶。
由于这个数字很大,所以你只需要将答案对109+7取模输出即可。
【输入】
第一行包括两个整数N,C,分别表示你可以把黄山视作一个N×N的格点图,并且黄山上面有C个位置出现了大坑。
接下来的C行,每行包括两个整数X,Y,表示X,Y这个位置不能走。保证X≥Y,也就是说(X,Y)必然在山上。
保证这C个点互不相同。
【输出】
输出只有一个整数Ans,表示他爬上山顶的路径数对109+7取模的值。
【输入样例】
【输出样例】
【提示】
【样例输入2】
【样例输出2】
【数据规模与约定】
对于30%的数据,保证N≤5000。
对于另外20%的数据,保证C=0。
对于另外20%的数据,保证C=1。
对于100%的数据,保证N≤100000,C≤1000。
保证对于(0,0),(N,N)不存在障碍点。
文本
7 4\n6 5\n5 3\n2 1\n7 1