#include <bits/stdc++.h>
using namespace std ;
int flag ;
int Map[ 11 ][ 11 ] ;
int Map1[ 11 ][ 11 ] ;
bool vis[ 11 ][ 11 ] ;
bool mx[ 10 ][ 10 ] , my[ 10 ][ 10 ] ;
void dfs ( int x , int y ) {
if ( flag == 1 ) {
return ;
}
if ( Map[ x ][ y ] != 0 ) {
if ( x == 9 && y == 9 ) {
flag = 1 ;
for ( int i = 1 ; i <= 9 ; i++ ) {
for ( int k = 1 ; k <= 9 ; k++ ) {
Map1[ x ][ y ] = Map[ x ][ y ] ;
}
}
}
else if ( y == 9 ) dfs ( x + 1 , y ) ;
else dfs ( x , y + 1 ) ;
}
else {
for ( int i = 1 ; i <= 9 ; i++ ) {
if ( mx[ x ][ i ] == true && my[ y ][ i ] == true && vis[ x ][ y ] == true ) {
Map[ x ][ y ] = i ;
mx[ x ][ i ] = my[ y ][ i ] = vis[ x ][ y ] = false ;
if ( x == 9 && y == 9 ) {
flag = 1 ;
}
else if ( y == 9 ) dfs ( x + 1 , y ) ;
else dfs ( x , y + 1 ) ;
Map[ x ][ y ] = 0 ;
vis[ x ][ y ] = true ;
mx[ x ][ i ] = my[ y ][ i ] = true ;
}
}
}
}
int main() {
memset ( Map , -1 , sizeof ( Map ) ) ;
for ( int i = 1 ; i <= 9 ; i++ ) {
for ( int k = 1 ; k <= 9 ; k++ ){
cin >> Map[ i ][ k ] ;
if ( Map[ i ][ k ] != 0 ) {
vis[ i ][ k ] = false ;
mx[ i ][ Map[ i ][ k ] ] = false ;
}
else vis[ i ][ k ] = true ;
}
}
vis[ 1 ][ 1 ] = 1 ;
dfs ( 1 , 1 ) ;
for ( int i = 1 ; i <= 9 ; i++ ) {
for ( int k = 1 ; k <= 9 ; k++ ) {
cout << Map1[ i ][ k ] << " " ;
}
cout << endl ;
}
return 0 ;
}