$(3N + 1)$ 行 $(3N + 1)$ 列のグリッドが与えられます。以下の条件をすべて満たすように各マスを黒または白に塗り分けることができるか判定し、可能な場合はそのような塗り分けをひとつ出力してください。
- どの異なる二つの黒マスも辺を共有しない。
- どの黒マスから出発しても、角を共有する(すなわち斜めに隣接する)黒マスへ零回以上繰り返し移動することで、グリッドの外周に接するいずれかの黒マスに到達できる。
- すべての白マスは単一の連結成分をなす。すなわち、任意の二つの白マスについて、辺を共有する隣接した白マスへ零回以上繰り返し移動することで、一方から他方へ移動できる。
- 特定の二つの行にはそれぞれちょうど $N + 1$ 個の黒マスがあり、残りの各行にはそれぞれちょうど $N$ 個の黒マスがある。
- 特定の二つの列にはそれぞれちょうど $N + 1$ 個の黒マスがあり、残りの各列にはそれぞれちょうど $N$ 個の黒マスがある。
入力
入力は以下の形式で与えられます:
N
- 入力はすべて整数である。
- $1 \le N \le 500$
出力
条件を満たす塗り分けが存在しない場合は、一行に No と出力してください。
存在する場合は、条件を満たす塗り分けを以下の形式で出力してください。上から $i$ 行目、左から $j$ 列目のマスを表す文字を $a_{i,j}$ とするとき、対応するマスが白ならば $a_{i,j}$ は .、黒ならば # としてください。
Yes
a_{1,1}...a_{1,3N+1}
:
a_{3N+1,1}...a_{3N+1,3N+1}条件を満たす塗り分けが複数存在する場合は、どれを出力しても構いません。
入出力例
入力例 1
1
出力例 1
No
注記
以下の三つの出力例は $N = 1$ の場合の出力形式に合致していますが、条件を満たしていないため不正解と判定されます。
Yes ##.. #... ...# ..##
Yes #.#. ...# #.#. .#..
Yes ...# .#.. ..#. #...
一つ目の例では、辺を共有する黒マスが存在します。
二つ目の例では、白マスが単一の連結成分をなしていません。
三つ目の例では、黒マスの個数に関する条件が満たされていません。さらに、例えば上から $2$ 行目、左から $2$ 列目の黒マスから出発すると、角を共有する黒マスへ繰り返し移動しても、グリッドの外周に接するどの黒マスにも到達できません。
$N = 1$ のとき、条件を満たす塗り分けが存在しないことが証明できます。