编程题
### 问题描述
你有一个长度为 $n$ 的整数数组 $a$,你需要对这个数组进行 $k$ 次操作:
- 每次选择一个下标 $i$,并将 $a_i$ 的值加 $1$。你可以多次对同一个下标进行操作。
定义 $c_0$,$c_1$ 和 $c_2$ 分别为数组 $a$ 中模 $3$ 余 $0$、余 $1$ 和余 $2$ 的数的个数。
如果 $c_0$,$c_1$ 和 $c_2$ 相等,那么我们就认为数组 $a$ 的余数是平衡的。
例如,当 $n=9$ 且 $a=[1, 1, 2, 2, 3, 3, 4, 4, 5]$ ,$k = 3$ 时,此时 $c_0=2$,$c_1=4$,$c_2=3$ 。
可以进行以下操作:
1. 我们将 $a_1$ 加 $1$,此时数组变为 $[2, 1, 2, 2, 3, 3, 4, 4, 5]$ ,$c_0=2$,$c_1=3$,$c_2=4$ 。
2. 我们再将 $a_1$ 加 $1$,此时数组变为 $[3, 1, 2, 2, 3, 3, 4, 4, 5]$ , $c_0=3$,$c_1=3$,$c_2=3$,这三个值相等,说明数组 $a$ 的余数是平衡的。
共对数组操作 $2$ 次使得数组变为平衡数组。
若存在一种合法方案使得对数组操作 $k$ 次之后,数组可以变为平衡的,则输出 `Yes` ,反之输出 `No` 。
注意:必须对数组进行 $k$ 次操作。
### 输入格式
第一行包含两个整数 $n, k$ , $n$ 表示数组 $a$ 的长度,$n$ 是 $3$ 的倍数, $k$ 表示要对数组的操作次数。
第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$,表示数组 $a$。
### 输出格式
输出一个行一个字符串:
- 若存在一个合法方案,则输出 `Yes` 。
- 若不存在合法方案,则输出 `No` 。
### 输入样例
```
9 2
1 1 2 2 3 3 4 4 5
```
### 输出样例
```
Yes
```
### 数据范围
$3\le n,k \le 3\times 10^4$,$0\le a_i\le 100$ 。