#include<cstdio>
using namespace std;
int a[10][10];
bool b[10];
int len,c[10];
void find(int x,int y,int f){
if(f == 1){
for(int i = 0;i < 9;i++){
if(a[x][i]){
b[a[x][i]] = 1;
}
}
find(x,y,2);
}
else if(f == 2){
for(int i = 0;i < 9;i++){
if(a[i][x]){
b[a[i][x]] = 1;
}
}
find(x,y,3);
}
else{
int k = y / 3 - 1,h = x / 3 - 1;
if(k == 0) k = 2;
int lk = k + 3,lh = h + 3;
for(int i = h;i < lh;i++){
for(int j = k;j < lk;j++){
if(a[i][j]){
b[a[i][j]] = 1;
}
}
}
for(int i = 0;i < 9;i++){
if(!b[i]) c[len++] = i + 1;
}
}
return;
}
void dfs(int x,int y){
find(x,y,1);
if(!len){
for(int i = 0;i < 9;i++){
for(int j = 0;j < 9;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("wwwwwww");
return;
}
int c_1[len + 1],len_1 = len;
for(int i = 0;i < len;i++) c_1[i] = c[i];
for(int z = 0;z < len_1;z++){
a[x][y] = c_1[z];
int i_1,j_1;
bool f = 0;
for(int i = 0;i < 9;i++){
for(int j = 0;j < 9;j++){
if(!a[i][j]){
i_1 = i,j_1 = j;
f = 1;
break;
}
}
if(f){
break;
}
}
dfs(i_1,j_1);
}
}
int main(){
bool f = 1;
int i_1,j_1;
for(int i = 0;i < 9;i++){
for(int j = 0;j < 9;j++){
scanf("%d",&a[i][j]);
if(!a[i][j] && f){
i_1 = i,j_1 = j;
f = 0;
}
}
}
dfs(i_1,j_1);
return 0;
}