请尽量在 20min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。
有 n 个灯笼环形摆放。最开始,这些灯笼都是关闭的状态。
操作台上有 n 个按钮,按下第 x 个按钮时,会反转灯笼 x 以及相邻两个灯笼的状态。「反转」是指关闭变成点亮、点亮变成关闭。
举一个例子:如果按下第 5 个按钮,则 4、5、6 号灯笼都会反转;如果按下第 n 个按钮,则 n-1, n, 1 这三个灯笼状态反转。这是因为灯笼放置为环形,n-1 和 1 是与 n 相邻的灯笼。
我们依次按下了一些按钮。你需要编程求出当我们的操作完成后,最终这些灯笼的状态。
第一行,两个正整数 n, m,分别表示共有 n 个灯笼、我们按了 m 次按钮。
接下来 m 行,每行一个正整数,表示我们在那一次操作中按下了哪个按钮。
仅一行,n 个整数,依次表示 n 个灯笼的状态,用空格隔开。以 `0` 代表灯笼关闭,以 `1` 代表灯笼点亮。
5 4 1 3 1 2
1 0 0 1 0
#### 样例解释
灯笼序列的状态如下:
```plaintext
0 0 0 0 0 # 初始状态
1 1 0 0 1 # 按下 1 之后的状态
1 0 1 1 1 # 按下 3 之后的状态
0 1 1 1 0 # 按下 1 之后的状态
1 0 0 1 0 # 按下 2 之后的状态
```
因此你应当输出 `1 0 0 1 0`。
#### 数据规模与约定
对于 100\% 的数据,有 n\leq 1000,m\leq 1000。
时间限制 | 1 秒 |
内存限制 | 128 MB |