CF57E Chess

题目描述

兔子 Brian 十分喜欢国际象棋。不久前,他与兔子 Stewie 争论骑士比国王更优秀。为了证明自己的观点,他试图展示骑士的速度非常快,但 Stewie 并不接受没有证据的说法。于是他为 Brian 构建了一个无限大的棋盘,并删去了一些格子,使游戏更加有趣。现在 Brian 只需要计算一下,一只站在坐标为 $ (0,0) $ 的骑士,最多经过 $ k $ 步能够到达多少个不同的棋盘格子。显然,不能跳到被删掉的格子上。 Brian 并不喜欢精确科学,也不懂编程,所以他几乎无法赶在 Stewie 之前完成这个题目。请你帮助 Brian,比 Stewie 更快解决这个问题。

输入格式

第一行包含两个整数 $ k $ 和 $ n $($ 0 \leq k \leq 10^{18},\ 0 \leq n \leq 440 $),分别表示骑士可以行动的最大步数,以及被删去的格子数。接下来 $ n $ 行,每一行给出一个被删去格子的坐标 $ (x_i,y_i) $($ |x_i| \leq 10,\ |y_i| \leq 10 $)。所有数字均为整数,被删去的格子不会重复,并保证格子 $(0,0)$ 没有被删去。

输出格式

输出一个整数,表示答案。由于可能非常大,输出其对 $ 1000000007 $ 取模的结果。

说明/提示

由 ChatGPT 5 翻译