#include <iostream>
#include <vector>
using namespace std;

bool isValid(vector<vector<int>>& mat, int r, int c, char x){
    int N = 9;
    for(int i = 0; i < N; i++){
        if(mat[r][i] == x || mat[i][c] == x) return false;
    }
    int startRow = (r / 3) * 3;
    int startCol = (c / 3) * 3;
    for(int i = startRow; i < startRow + 3; i++){
        for(int j = startCol; j < startCol + 3; j++){
            if(mat[i][j] == x) return false;
        }
    }
    return true;
}

bool backtracking(vector<vector<int>>& mat, int i, int j){
    int N = 9;
    if(j == N){
        // return backtracking(mat, i + 1, 0);
	  i++;j = 0;
    }
    if(i == N){
        return true;
    }
    if(mat[i][j] != 0){
        return backtracking(mat, i, j + 1);
    }
    for(int x = 1; x <= N; x++){
        if(!isValid(mat, i, j, x)) continue;
        mat[i][j] = x;
        if(backtracking(mat, i, j + 1)){
            return true;
        } 
        mat[i][j] = 0;
    }
    return false;
}


int main() {
    const int N = 9;
    vector<vector<int>> mat(N, vector<int>(N));
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++){
            cin >> mat[i][j];
        }
    }
    backtracking(mat,0,0);
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++){
            cout << mat[i][j] << " ";
        }
        cout << endl;
    }

}
// 64 位输出请用 printf("%lld")