#include <bits/stdc++.h>
using namespace std;
const int N = 205;
int bod[N][N];
int n;
void dfs(int x, int y, int oldnum, int newnum) {
if (x < 1 || x > n || y < 1 || y > n || bod[x][y] != oldnum)
return;
bod[x][y] = newnum;
dfs(x - 1, y, oldnum, newnum);
dfs(x + 1, y, oldnum, newnum);
dfs(x, y - 1, oldnum, newnum);
dfs(x, y + 1, oldnum, newnum);
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> bod[i][j];
}
}
for (int i = 1; i <= n; i++) {
if (bod[i][1] == 0)
dfs(i, 1, 0, 3);
if (bod[n][i] == 0)
dfs(i, n, 0, 3);
}
for (int j = 1; j <= n; j++) {
if (bod[1][j] == 0)
dfs(1, j, 0, 3);
if (bod[n][j] == 0)
dfs(n, j, 0, 3);
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (bod[i][j] == 0) {
dfs(i, j, 0, 2);
}
}
}
for (int i = 1; i <= n; i++) {
if (bod[i][1] == 3) {
dfs(i, 1, 3, 0);
}
if (bod[i][n] == 3) {
dfs(i, n, 3, 0);
}
}
for (int j = 1; j <= n; j++) {
if (bod[1][j] == 3) {
dfs(1, j, 3, 0);
}
if (bod[n][j] == 3) {
dfs(n, j, 3, 0);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cout << bod[i][j] << " ";
}
puts("");
}
return 0;
}