#include <bits/stdc++.h>
#include <vector>
using namespace std;

class Solution{
    private:
    bool isValid(vector<vector<int>>& board,int row,int col,int num){
        for(int i=0;i<9;i++) if(board[row][i]==num) return false;
        for(int i=0;i<9;i++) if(board[i][col]==num) return false;
        int startrow = row-row%3;
        int startcol = col-col%3;
        for(int i=0;i<3;i++) for(int j=0;j<3;j++) if(board[startrow+i][startcol+j]==num) return false;
        return true;
    }
    bool solve(vector<vector<int>>& board){
        for(int i=0;i<9;i++) for(int j=0;j<9;j++){
            if(board[i][j]==0){
                for(int num=1;num<10;num++){
                    if(isValid(board,i,j,num)){
                        board[i][j]=num;
                        if(solve(board)) return true;//继续向下进行
                        board[i][j]=0;//走不通便擦除,迭代填入下一个num
                    }
                }
                return false;//如果全部num填入都不行,返回false,擦除并换值
            }
        }
        return true;
    }
    public:
    void solvesolution(vector<vector<int>>& board){
        solve(board);
    }
};

int main(){
    vector<vector<int>>board(9,vector<int>(9));
    for(int i=0;i<9;i++){
        for(int j=0;j<9;j++){
            cin>>board[i][j];
        }
    }
    Solution solution;
    solution.solvesolution(board);
    for(int i=0;i<9;i++) for(int j=0;j<9;j++) {
        cout<<board[i][j]<<" ";
        if(j==8) cout<<endl;
    }
}