Eleanor 最近弄丢了她最喜欢的枕头。她对枕头非常挑剔,并根据柔软度对枕头进行分类。她丢失的枕头柔软度为 $C$,如果柔软度不完全相等,她就无法入睡。虽然她可以获得其他类型的枕头,但可能没有她想要的柔软度。作为一种变通方法,她愿意将多个枕头堆叠在一起睡觉。当柔软度分别为 $C_1, C_2, \dots, C_k$ 的枕头按此顺序堆叠时,最终的柔软度等于
$$C_1 + \left\lceil \frac{C_2}{2} \right\rceil + \left\lceil \frac{C_3}{4} \right\rceil + \dots + \left\lceil \frac{C_k}{2^{k-1}} \right\rceil$$
换句话说,堆叠中的第 $i$ 个枕头贡献了其柔软度的 $2^{-(i-1)}$,并向上取整。注意 $\lceil f \rceil$ 定义为满足 $x \ge f$ 的最小整数 $x$。
Eleanor 有很多钱,并且愿意使用她能获得的任意数量的每种枕头。你能帮她确定是否有一种堆叠枕头的方法来达到她想要的柔软度吗?
输入格式
第一行包含两个整数 $N$ 和 $C$ ($1 \le N \le 10^3$ 且 $1 \le C \le 10^4$)。$N$ 表示 Eleanor 可以获得的枕头类型数量,$C$ 表示期望的柔软度水平。下一行包含 $N$ 个整数 $a_1, a_2, \dots, a_N$ ($1 \le a_i \le 10^{18}$),表示 Eleanor 可以获得的枕头的柔软度。
输出格式
如果 Eleanor 可以通过堆叠枕头达到柔软度 $C$,输出 YES。否则,输出 NO。
样例
样例输入 1
1 1000 1
样例输出 1
YES
样例输入 2
1 5 4
样例输出 2
NO
样例输入 3
2 100 51 98
样例输出 3
YES