#include <bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f int n, a[35][35], vis[35][35]; struct point { int x; int y; }; int dx[] = {0, 1, 0 ,-1}; int dy[] = {1, 0, -1, 0}; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) for (int j = 1; j<= n; j++) scanf("%d", &a[i][j]); queue <point> r; point start; start.x = 0; start.y = 0; r.push(start); vis[0][0] = 1; while (!r.empty()) { for (int k = 0; k <= 3; k++) { int tx = r.front().x + dx[k]; int ty = r.front().y + dy[k]; if (tx>=0 && tx<=n+1 && ty>=0 && ty<=n+1 && vis[tx][ty]==0 && a[tx][ty]==0) { point tmp; tmp.x = tx; tmp.y = ty; r.push(tmp); vis[tx][ty] = 1; } } r.pop(); } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(vis[i][j] == 0 && a[i][j] == 0) cout << "2 "; else cout << a[i][j] << " "; } cout << endl; } return 0; }