AT_chokudai004_a Just Write Numbers!

Description

[problemUrl]: https://atcoder.jp/contests/chokudai004/tasks/chokudai004_a 高橋君は、 $ 3 $ つの整数 $ B_1,\ B_2,\ B_3 $ が好きです。 そこで、高橋君は、 $ N×N $ のマス目に数を書き込み、縦または横に連続した数の区間で、和が好きな数になるものを、たくさん作ろうと思いました。 例えば、以下のようにマス目に数を書き込み、好きな整数が $ 13 $ だった時、赤で塗ったような区間が、条件を満たす区間となります。 ![例](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_chokudai004_a/df4cb3c9bb5b3b18cfb07c74d2309a24862c0ac6.png) 和が $ B_1,\ B_2,\ B_3 $ となる縦または横の区間の数を $ A_1,\ A_2,\ A_3 $ とすると、$ A_1×B_1+A_2×B_2+A_3×B_3 $ が、得られる点数となります。 ただし、高橋君は、盤面に自由に数を書き込むことが出来ません。各マスには、書き込める数の最小値と最大値が決められています。 上から $ i $ 番目、左から $ j $ 番目のマスには、$ l_{i,j} $ から $ r_{i,j} $ の間の数しか書き込むことが出来ません。 高橋君が獲得できる点数が、出来るだけ多くなるような、数の書き込み方を求めてください。 この問題は、最適な解を発見することを想定されていない、所謂マラソン系問題です。条件を満たす解であれば、点数を獲得することが出来ます。

Input Format

入力は以下の形式で与えられる。 > $ N $ $ B_1 $ $ B_2 $ $ B_3 $ $ l_{1,1} $ $ l_{1,2} $ ... $ l_{1,N} $ $ l_{2,1} $ $ l_{2,2} $ ... $ l_{2,N} $ : $ l_{N,1} $ $ l_{N,2} $ ... $ l_{N,N} $ $ r_{1,1} $ $ r_{1,2} $ ... $ r_{1,N} $ $ r_{2,1} $ $ r_{2,2} $ ... $ r_{2,N} $ : $ r_{N,1} $ $ r_{N,2} $ ... $ r_{N,N} $

Output Format

$ i $ 行目、 $ j $ 列目のマスに書き込む数を $ A_{i,j} $ として、以下のフォーマットで出力せよ。 > $ A_{1,1} $ $ A_{1,2} $ ... $ A_{1,N} $ $ A_{2,1} $ $ A_{2,2} $ ... $ A_{2,N} $ : $ A_{N,1} $ $ A_{N,2} $ ... $ A_{N,N} $ 出力された全ての $ A_{i,j} $ について、$ l_{i,j}\ ≦\ A_{i,j}\ ≦\ r_{i,j} $ が満たされていれば、正解となり、問題文に書かれた点数が得られる。 不正解となる出力が行われた場合は、ほぼ全てのテストケースが $ 0 $ 点として扱われる。

Explanation/Hint

### 制約 - $ N\ =\ 30 $ - $ 10 $ ≦ $ B_1 $ ≦ $ 19 $ - $ 20 $ ≦ $ B_2 $ ≦ $ 29 $ - $ 30 $ ≦ $ B_3 $ ≦ $ 39 $ - $ 1 $ ≦ $ l_{i,j} $ ≦ $ r_{i,j} $ ≦ $ 9 $ ### 入力生成方法 - $ B $ は、制約の範囲内で一様なランダムで生成される。 - $ l_{i,j},\ r_{i,j} $ は、$ 1 $ から $ 9 $ の間で一様なランダムで独立に生成される。この際、$ l_{i,j} $ が $ r_{i,j} $ より大きかった場合、それらの値をswapする。 ### 入出力例その他 [入出力(Example01~03)、入出力検証プログラム(C++)のダウンロードはこちらから。](https://img.atcoder.jp/chokudai004/cca3bf4eb85d43be4112d70c0e7f275b.zip)