ztr loves chess

Accepts: 31
Submissions: 93
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
ztr热爱下棋。
不久以前,他和Hillan争论:他认为马比王好。
为了证明他的观点,他试着展示了马(的移动速度)非常快,但是Hillan并不接受这个没有证据的结果。
他为ztr构建了一个无限大的棋盘,为了增加游戏的乐趣,他删除了一些棋盘上的格子。
ztr只需要数出,有多少个不同的格子,马可以从棋盘的(0,0)点移动不超过k步可以到达,
当然,不能走被删除的格子。
ztr自己不是很喜欢精密科学,也不屑于写这么简单的程序。
这就是为什么,他在Hillan的问题上很难有进展,然而,Hillan已经开始解决这个问题。
帮助ztr比Hillan更快地解决这个问题吧。
输入描述
有T组数据$(1<=T<=10)$
第一行包含两个整数 k 和 n $(0 <= k <= 10^{18} , 0 <= n <= 440)$
分别代表马能移动的最大步数和删除的格子数,接下来n行,每行给出被删除的格子的坐标,以(xi,yi)(|xi| <= 10 , |yi| <= 10),所有的数都是整数,被删除的格子各不相同,并且保证(0,0)格子不被删除。
输出描述
输出答案,它可能很大,你需要输入它对$1000000007$取余的结果。
输入样例
1
2 7
-1 2
1 2
2 1
2 -1
1 -2
-1 -2
-2 -1
输出样例
9