我不是大富翁
题号:NC266925
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
Special Judge, 64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,\,提到大富翁游戏!就想到环!!就想到经典的约瑟夫问题!!!作为经典问题,其出彩的展示了数学思维在实际问题中的应用,启发了一代又一代的算竞人。
\,\,\,\,\,\,\,\,\,\,好了,不要再约瑟夫了,都是经典问题害的你,没法正常的玩大富翁游戏。现在,让我们来愉快的玩大富翁吧!
\,\,\,\,\,\,\,\,\,\,
\,\,\,\,\,\,\,\,\,\,\rm\mathcal Rabbit 拿到了一张环形的大富翁地图,地图被平均划分为了 n 个地块,地块的编号以 1 为起点,顺时针进行排布。即 1 号地块的顺时针方向依次为 2, 3, \dots 号地块;1 号地块的逆时针方向依次为 n, n-1, \dots 号地块(由于是环形的,所以 1 号地块与 n 号地块相邻,如下图所示)。
\,\,\,\,\,\,\,\,\,\,游戏过程如下:系统会给定一个长度为 m 的行动力序列 a_1,a_2,\dots,a_m ,在第 i (1\le i \le m) 回合,\mathcal Rabbit 都需要移动 a_i 个地块,但是他可以自由选择移动的方向(换句话说,可以自由选择是向逆时针还是顺时针方向移动 a_i 个地块)。
\,\,\,\,\,\,\,\,\,\,在游戏的开始时,\rm \mathcal Rabbit 位于 1 号地块,他想知道是否存在这样一种移动方式,使得 m 个回合后他依旧在 1 号地块。

输入描述:

\,\,\,\,\,\,\,\,\,\,每个测试文件仅有一组测试数据。
\,\,\,\,\,\,\,\,\,\,第一行输入两个整数 n 和 m (1 \le nm \le 5000) 表示地块数量和行动回合数。
\,\,\,\,\,\,\,\,\,\,第二行输入 m 个整数 a_1,a_2,\dots,a_m (0\le a_i\le 2 \cdot 10^5) 表示行动力序列。

输出描述:

\,\,\,\,\,\,\,\,\,\,如果 m 个回合后 \rm \mathcal Rabbit 依旧在 1 号地块,则输出 \rm YES ;否则,请输出 \rm NO 。您可以以任何大小写形式输出答案,例如,\rm yEs 、\rm yes 和 \rm YeS 都将被视为肯定的回答。
示例1

输入

复制
360 3
120 120 120

输出

复制
YES
示例2

输入

复制
50 5
30 0 10 10 10

输出

复制
yES
示例3

输入

复制
114 5
14 1 9 1 9

输出

复制
no

备注:

\,\,\,\,\,\,\,\,\,\,如果您需要使用 \rm{Python} 解题,我们建议您在提交时选择 \rm{pypy2} 或 \rm pypy3 。