public class Main {
static int[][] arr = new int[9][9];
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
arr[i][j] = scanner.nextInt();
}
}
recursion();
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
static boolean recursion() {
int row = 9, col = 9;
out : for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
if (arr[i][j] == 0) {
row = i;
col = j;
break out;
}
}
}
if (row == 9) {
return true;
}
for (int i = 0; i < 9; i++) {
if (isValid(row, col, i + 1)) {
arr[row][col] = i + 1;
if (recursion()) {
return true;
}
}
}
arr[row][col] = 0;
return false;
}
static boolean isValid(int row, int col, int val) {
for (int i = 0; i < 9; i++) {
if (arr[row][i] == val) {
return false;
}
}
for (int i = 0; i < 9; i++) {
if (arr[i][col] == val) {
return false;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (arr[row / 3 * 3 + i][col / 3 * 3 + j] == val) {
return false;
}
}
}
return true;
}
}