AT_jsc2019_final_b Reachability
Description
[problemUrl]: https://atcoder.jp/contests/jsc2019-final/tasks/jsc2019_final_b
高橋くんは青木くんから、$ 3N $ 頂点からなる有向グラフをもらいました。 このグラフの頂点には、$ x_0,x_1,\cdots,x_{N-1},y_0,y_1,\cdots,y_{N-1},z_0,z_1,\cdots,z_{N-1} $ と名前がついています。 このグラフの辺は全て、$ x $ の頂点から $ y $ の頂点へ向かう辺、または、$ y $ の頂点から $ z $ の頂点へ向かう辺です。 なお、多重辺は存在しません。
高橋くんはこのグラフで遊んでいるうちに、$ 2N $ 個の長さ $ N $ の文字列 $ A_0,A_1,\cdots,A_{N-1},B_0,B_1,\cdots,B_{N-1} $ を得ました。 これらの文字列には、以下の性質があります。
- $ A_i $ の $ j $ 文字目 ($ 0\ \leq\ i,j\ \leq\ N-1 $) は、 頂点 $ x_i $ から頂点 $ y_j $ へ向かう辺が存在するときは `1`、存在しないときは `0` である。
- $ B_i $ の $ j $ 文字目 ($ 0\ \leq\ i,j\ \leq\ N-1 $) は、 頂点 $ x_i $ から頂点 $ z_j $ へ向かうパスが存在するときは `1`、存在しないときは `0` である。
高橋くんはうっかりこのグラフを壊してしまいましたが、上述の $ 2N $ 個の文字列は覚えています。 高橋くんの代わりに、もとのグラフとしてありうるものを $ 1 $ つ示してください。 ただし、高橋くんの記憶が間違っており、もとのグラフとしてありうるものが存在しない場合は、そのように指摘してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_0 $ $ A_1 $ $ \vdots $ $ A_{N-1} $ $ B_0 $ $ B_1 $ $ \vdots $ $ B_{N-1} $
Output Format
もとのグラフとしてありうるものが存在しない場合、$ -1 $ を出力せよ。
もとのグラフとしてありうるものが存在する場合は、$ y $ の頂点から $ z $ の頂点へ向かう辺を、以下の形式で出力せよ。
> $ c_{0,0}c_{0,1}\cdots\ c_{0,N-1} $ $ c_{1,0}c_{1,1}\cdots\ c_{1,N-1} $ $ \vdots $ $ c_{N-1,0}c_{N-1,1}\cdots\ c_{N-1,N-1} $
ここで、$ c_{i,j} $ は、$ y_i $ から $ z_j $ へ向かう辺が存在するときは `1`、存在しないときは `0` である。
解が複数存在する場合、どれを出力しても正解と判定される。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 300 $
- $ A_i $ は `0`,`1` からなる長さ $ N $ の文字列である。
- $ B_i $ は `0`,`1` からなる長さ $ N $ の文字列である。
### Sample Explanation 1
例えば、高橋くんの記憶によれば頂点 $ x_2 $ から頂点 $ z_1 $ へ向かうパスが存在しますが、 出力例のグラフには、$ x_2\ →\ y_2\ →\ z_1 $ というパスが存在します。
### Sample Explanation 2
もとのグラフとしてありうるものは存在しません。