#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
const int tmp[9][9] = {{0,0,0,1,1,1,2,2,2},
{0,0,0,1,1,1,2,2,2},
{0,0,0,1,1,1,2,2,2},
{3,3,3,4,4,4,5,5,5},
{3,3,3,4,4,4,5,5,5},
{3,3,3,4,4,4,5,5,5},
{6,6,6,7,7,7,8,8,8},
{6,6,6,7,7,7,8,8,8},
{6,6,6,7,7,7,8,8,8}};
int Int(){
char ch;int tmp = 0;
while (ch = getchar()) if (ch >= '0' && ch <='9') break;
for (; ch >= '0' && ch <= '9'; ch = getchar()) tmp = tmp * 10 + ch - '0';
return tmp;
}
int tmp1[9], tmp2[9], tmp3[9];
int a[9][9];
int ans[9][9];
bool ok;
int num[1 << 12];
void init(){
memset(tmp1, 0, sizeof(tmp1));
memset(tmp2, 0, sizeof(tmp2));
memset(tmp3, 0, sizeof(tmp3));
memset(ans, 0, sizeof(ans));
memset(a, 0, sizeof(a));
ok = false;
for (int i = 0; i < 9; i ++)
for (int j = 0; j < 9; j ++){
char ch = 0;
while (ch = getchar()){
if ((ch >= '0' && ch <= '9') || ch == '.') break;
if (ch == 'e') exit(0);
}
if (ch != '.') a[i][j] = ch - '0';
if (a[i][j]){
ans[i][j] = a[i][j];
tmp1[i] ^= (1 << a[i][j] - 1);
tmp2[j] ^= (1 << a[i][j] - 1);
tmp3[tmp[i][j]] ^= (1 << a[i][j] - 1);
}
}
}
int find_next(int &x, int &y){
x = 9, y = 0;
int mini = 99999;
for (int i = 0; i < 9; i ++)
for (int j = 0; j < 9; j ++)
if (ans[i][j] == 0 && num[(511 ^ tmp1[i]) & (511 ^ tmp2[j]) & (511 ^ tmp3[tmp[i][j]])] < mini){
x = i, y = j;
mini = num[(511 ^ tmp1[i]) & (511 ^ tmp2[j]) & (511 ^ tmp3[tmp[i][j]])];
}
}
void dfs(int x, int y){
if (ok)return;
if (a[x][y]){
int xx = 0, yy = 0;
find_next(xx, yy);
dfs(xx, yy);
return;
}
if (x == 9 && y == 0){
for (int i = 0; i < 9; i ++){
for (int j = 0; j < 9; j ++)
cout <<ans[i][j] ;
}
cout <<endl;
ok = true;
return;
}
for (int i = 1; i <= 9; i ++)
if (!(tmp1[x] & (1 << i - 1)) && !(tmp2[y] & (1 << i - 1)) && !(tmp3[tmp[x][y]] & (1 << i - 1))){
ans[x][y] = i;
tmp1[x] ^= (1 << i - 1);
tmp2[y] ^= (1 << i - 1);
tmp3[tmp[x][y]] ^= (1 << i - 1);
int xx = 0, yy = 0;
find_next(xx, yy);
dfs(xx, yy);
ans[x][y] = 0;
tmp1[x] ^= (1 << i - 1);
tmp2[y] ^= (1 << i - 1);
tmp3[tmp[x][y]] ^= (1 << i - 1);
}
}
int main(){
for (int i = 0; i <= 512; i ++)
for (int j = 0; j < 9; j ++)
if (i & (1 << j)) num[i] ++;
while (1){
init();
dfs(0, 0);
}
return 0;
}