#arc144c. [arc144_c]K Derangement

[arc144_c]K Derangement

問題文

正整数 N,KN, K が与えられます. 11 から NN までの整数からなる順列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N) であって次の条件を満たすもののうち, 辞書順最小のものを求めてください.

  • 任意の ii (1leqileqN1\\leq i\\leq N) に対して lvertAiirvertgeqK\\lvert A_i - i\\rvert \\geq K が成り立つ.

そのような順列が存在しない場合には,-1 を出力してください.

数列の辞書順とは?

相異なる数列 SS と数列 TT の大小を判定するアルゴリズムを以下に説明します.

以下では SSii 番目の要素を SiS_i のように表します.また, SSTT より辞書順で小さい場合は SltTS \\lt T ,大きい場合は SgtTS \\gt T と表します.

  1. SSTT のうち長さが短い方の文字列の長さを LL とします.i=1,2,dots,Li=1,2,\\dots,L に対して SiS_iTiT_i が一致するか調べます.
  2. SineqTiS_i \\neq T_i である ii が存在する場合,そのような ii のうち最小のものを jj とします.そして,SjS_jTjT_j を比較して, SjS_jTjT_j より(数として)小さい場合は SltTS \\lt T ,大きい場合は SgtTS \\gt T と決定して,アルゴリズムを終了します.
  3. SineqTiS_i \\neq T_i である ii が存在しない場合, SSTT の長さを比較して,SSTT より短い場合は SltTS \\lt T ,長い場合は SgtTS \\gt T と決定して,アルゴリズムを終了します.

制約

  • 2leqNleq3times1052\\leq N\\leq 3\\times 10^5
  • 1leqKleqN11\\leq K\\leq N - 1

入力

入力は以下の形式で標準入力から与えられます.

NN KK

出力

条件を満たす順列 AA のうち,辞書順最小のものを次の形式で出力してください.

A1A_1 A2A_2 ldots\\ldots ANA_N

そのような順列が存在しない場合には,-1 を出力してください.


入力例 1

3 1

出力例 1

2 3 1

条件を満たす順列は,(2,3,1)(2, 3, 1)(3,1,2)(3, 1, 2)22 つです.例えば (2,3,1)(2, 3, 1)

  • lvertA11rvert=1geqK\\lvert A_1 - 1\\rvert = 1 \\geq K
  • lvertA22rvert=1geqK\\lvert A_2 - 2\\rvert = 1 \\geq K
  • lvertA33rvert=2geqK\\lvert A_3 - 3\\rvert = 2 \\geq K

であるため条件を満たしています.


入力例 2

8 3

出力例 2

4 5 6 7 8 1 2 3

入力例 3

8 6

出力例 3

-1