#arc135d. [arc135_d]Add to Square

[arc135_d]Add to Square

問題文

HtimesWH\\times W のマス目があり、各マスに整数がひとつずつ書き込まれています。 1leqileqH1\\leq i\\leq H, 1leqjleqW1\\leq j\\leq W に対して、ii 行目・jj 列目のマスに書き込まれている整数を Ai,jA_{i,j} で表します。

あなたは次の操作を、何度でも行うことができます(一度も行わなくてもよいです)。

  • 1leqileqH11\\leq i\\leq H - 1 かつ 1leqjleqW11\\leq j\\leq W - 1 を満たす整数 i,ji, j を選ぶ。
  • 整数 xx をひとつ選ぶ。
  • Ai,jA_{i,j}, Ai,j+1A_{i,j+1}, Ai+1,jA_{i+1,j}, Ai+1,j+1A_{i+1,j+1}xx を加える。

操作後の sumi=1Hsumj=1WAi,j\\sum_{i=1}^H \\sum_{j=1}^W |A_{i,j}| が最小となるように操作を行うとき、操作後の sumi=1Hsumj=1WAi,j\\sum_{i=1}^H \\sum_{j=1}^W |A_{i,j}| の値および、そのときのマス目の状態を出力してください。

制約

  • 2leqH,Wleq5002\\leq H, W \\leq 500
  • Ai,jleq109|A_{i,j}|\\leq 10^9

入力

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

HH WW A1,1A_{1,1} ldots\\ldots A1,WA_{1,W} vdots\\vdots AH,1A_{H,1} ldots\\ldots AH,WA_{H,W}

出力

H+1H + 1 行出力してください。 11 行目には、sumi=1Hsumj=1WAi,j\\sum_{i=1}^H \\sum_{j=1}^W |A_{i,j}| の値を出力してください。 22 行目から H+1H+1 行目には、マス目の状態を以下の形式で出力してください。

A1,1A_{1,1} ldots\\ldots A1,WA_{1,W} vdots\\vdots AH,1A_{H,1} ldots\\ldots AH,WA_{H,W}

条件を満たすマス目の状態が複数存在する場合は、どれを出力しても正解となります。


入力例 1

2 3
1 2 3
4 5 6

出力例 1

9
0 -3 -1
3 0 2

例えば次のように操作を行うと、出力例のマス目の状態になります。

  • (i,j,x)=(1,1,1)(i, j, x) = (1, 1, -1) として操作を行う。
  • (i,j,x)=(1,2,4)(i, j, x) = (1, 2, -4) として操作を行う。

このとき、$\\sum_{i=1}^H \\sum_{j=1}^W |A_{i,j}| = 0 + 3 + 1 + 3 + 0 + 2 = 9$ です。


入力例 2

2 2
1000000000 -1000000000
-1000000000 1000000000

出力例 2

4000000000
2000000000 0
0 2000000000

Ai,j>109|A_{i,j}| > 10^9 となるような操作も認められています。


入力例 3

3 4
0 2 0 -2
-3 -1 2 0
-3 -3 2 2

出力例 3

0
0 0 0 0
0 0 0 0
0 0 0 0