$(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$일 때는 조건을 만족하는 색칠 방법이 존재하지 않음을 증명할 수 있습니다.