001 - 徳の河原
時間制限 1 秒 / メモリ制限 64 MB / 得点 3 / x 5 /
ストーリー
YTAは破壊神である。
彼は破壊を司る神として賞賛に値する働きをしていたが、神として新たなるステージに上るため、修行を積むことにした。
ところでこんな言葉を知っているだろうか。
『創造は破壊の先にある』
この言葉から察するに、創造は破壊の上位互換なのだろう。
それはともかく、YTAは創造神$HINA$のもとに弟子入りをして、課題を手に入れた。
『そこら中に散らばった高さXiの徳の破片計N個の中から4つまでを選び、重ねたときの高さを丁度Mにすると徳を積める。』
だそうだ。
さらに、任意の徳を積むために使って良い破片は制限されており、徳ごとに使える大きさの破片はすでにリストアップされているらしい。
全ての破片は同じ大きさのものが少なくとも4つ以上存在しているようで、重複して使うことが出来そうである。
しかし聡明なYTAは課題は確実に遂行できるわけではなさそうだと気が付いた。
指令の可否を判断してあげよう。
入力
1行目に、散らばっている破片の総数Nと指令された高さMが与えられる。 2行目以降に、使用可能な破片の大きさXiがN行与えられる。N M X1 X2 ... XN
出力
指令を達成できるなら"Yes"を、できないならば"No"を一行で出力せよ。最後の改行を忘れずに。
制約
- 1 ≤ $N$ ≤ 1000
- 0 ≤ $M$ ≤ 10e8
- 1 ≤ $X$i ≤ 10e8
入出力例
例1
入力
3 10 1 3 5
出力
Yes《 1, 1, 3, 5》や《 5, 5 (, 0, 0)》といった積み方がある。
例2
入力
5 13 8 6 14 9 22
出力
No5種類の破片をどう組み合わせても高さが13丁度にはならない。
徳は積めない。
補足
この物語はフィクションであり、実際の人物や団体とは関係ございません。
問題文中の名言の実在を保証するわけではありません。