#include <stdio.h>
const int SIZE = 35;
int qwq[SIZE][SIZE], vis[SIZE][SIZE], mark[SIZE][SIZE], n;
inline bool can_search(int i, int j)
{
if (i < 0 || i > n + 1 || j < 0 || j > n + 1)
return false;
return (qwq[i][j] == 0) && !vis[i][j];
}
void dfs(int i, int j)
{
if (!can_search(i, j))
return;
vis[i][j] = true;
mark[i][j] = true;
dfs(i + 1, j );
dfs(i - 1, j );
dfs(i , j + 1);
dfs(i , j - 1);
vis[i][j] = false;
}
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
scanf("%d", &qwq[i][j]);
dfs(0, 0);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
if (mark[i][j])
printf("0 ");
else if (qwq[i][j])
printf("1 ");
else
printf("2 ");
printf("\n");
}
return 0;
}