#abc275f. [abc275_f]Erase Subarrays

[abc275_f]Erase Subarrays

問題文

正整数列 A=(a1,a2,ldots,aN)A=(a_1,a_2,\\ldots,a_N) が与えられます。
あなたは次の操作を 00 回以上何度でも繰り返せます。

  • AA から(空でない)連続する部分列を選び、削除する。

x=1,2,ldots,Mx=1,2,\\ldots,M に対し、次の問題を解いてください。

  • AA の要素の総和をちょうど xx にするために必要な操作回数の最小値を求めてください。ただし、どのように操作を行っても AA の要素の総和をちょうど xx にできない場合は代わりに -1 と出力してください。

なお、AA が空である時、AA の要素の総和は 00 であるとします。

制約

  • 1leqN,Mleq30001 \\leq N,M \\leq 3000
  • 1leqaileq30001 \\leq a_i \\leq 3000
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM a1a_1 ldots\\ldots aNa_N

出力

MM 行出力せよ。ii 行目には x=ix=i に対する答えを出力せよ。


入力例 1

4 5
1 2 3 4

出力例 1

1
2
1
1
1

操作回数が最小である操作の例を以下に示します。

  • x=1x=1 について、a2,a3,a4a_2,a_3,a_4 に対して操作をすることで AA の要素の総和が xx になります。
  • x=2x=2 について、a3,a4a_3,a_4 に対して操作をした後、a1a_1 に対して操作をすることで AA の要素の総和が xx になります。
  • x=3x=3 について、a3,a4a_3,a_4 に対して操作をすることで AA の要素の総和が xx になります。
  • x=4x=4 について、a1,a2,a3a_1,a_2,a_3 に対して操作をすることで AA の要素の総和が xx になります。
  • x=5x=5 について、a2,a3a_2,a_3 に対して操作をすることで AA の要素の総和が xx になります。

入力例 2

1 5
3

出力例 2

-1
-1
0
-1
-1

入力例 3

12 20
2 5 6 5 2 1 7 9 7 2 5 5

出力例 3

2
1
2
2
1
2
1
2
2
1
2
1
1
1
2
2
1
1
1
1