#abc272d. [abc272_d]Root M Leaper

[abc272_d]Root M Leaper

問題文

NtimesNN \\times N のマス目があります。上から ii 行目、左から jj 列目のマスを (i,j)(i,j) と表します。

始め、(1,1)(1,1) に駒が 11 個置かれています。あなたは以下の操作を何度でも行うことができます。

  • 今駒が置かれているマスと距離がちょうど sqrtM\\sqrt{M} であるマスに駒を移動させる。

ここで、マス (i,j)(i,j) とマス (k,l)(k,l) の距離は sqrt(ik)2+(jl)2\\sqrt{(i-k)^2+(j-l)^2} とします。

全てのマス (i,j)(i,j) に対して、以下の問題を解いてください。

  • 駒を (1,1)(1,1) から (i,j)(i,j) に移動させることができるかを判定し、できる場合は操作回数の最小値を求めてください。

制約

  • 1leNle4001 \\le N \\le 400
  • 1leMle1061 \\le M \\le 10^6
  • 入力は全て整数

入力

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

NN MM

出力

NN 行出力せよ。ii 行目には NN 個の整数を出力せよ。ii 行目の jj 個目の出力は、マス (i,j)(i,j) に駒を移動させることができるのであれば操作回数の最小値を、そうでないのであれば \-1\-1 を出力せよ。


入力例 1

3 1

出力例 1

0 1 2
1 2 3
2 3 4

駒は上下左右の 44 個のマスに移動することができます。

例えば (2,2)(2,2) に移動するには、以下のように 22 回の操作を行えばよいです。

  • 今駒は (1,1)(1,1) に置かれている。(1,1)(1,1)(1,2)(1,2) の距離はちょうど sqrt1\\sqrt{1} であるため、駒を (1,2)(1,2) に移動させる。
  • 今駒は (1,2)(1,2) に置かれている。(1,2)(1,2)(2,2)(2,2) の距離はちょうど sqrt1\\sqrt{1} であるため、駒を (2,2)(2,2) に移動させる。

入力例 2

10 5

出力例 2

0 3 2 3 2 3 4 5 4 5
3 4 1 2 3 4 3 4 5 6
2 1 4 3 2 3 4 5 4 5
3 2 3 2 3 4 3 4 5 6
2 3 2 3 4 3 4 5 4 5
3 4 3 4 3 4 5 4 5 6
4 3 4 3 4 5 4 5 6 5
5 4 5 4 5 4 5 6 5 6
4 5 4 5 4 5 6 5 6 7
5 6 5 6 5 6 5 6 7 6