//import java.util.*;
//
//public class Main {
// public static void main(String[] args) {
// Scanner t = new Scanner(System.in);
//
// int n = t.nextInt(); // 마방진 크기를 입력 받음
// int k = 1; // k 를 1로 초기화
// int x = 0; //행의 시작 좌표
// int y = n/2; //열의 시작 좌표
// int map[][] = new int[n][n]; // 마방진 크기만큼 배열을 만듬
//
//
// map[x][y] = k++; //k를 증가
//
//
// for(int i=0; i<n*n-1; i++) { //n*n-1만큼 반복
// x--; // 행은 감소
// y++; // 열은 증가
//
//
// if(x<0) x = n-1; // 만약에 x가 0보다 작으면 n-1 위치로 이동
// if(y>=n) y = 0; // 만약에 y가 n보다 크거나 같으면 열을 0으로 이동
//
// map[x][y] = k++; //k가 증가
//
// if(k>n*n) break; // 만약에 k가 n*n보다 크면 멈춰
// if((k-1) % n == 0) { //k가 n의 배수이면
// x++; //행만 증가한다
// x = x % n; //x는 x/n의 나머지이다
// map[x][y] = k++; // k를 증가
//
// }
// }
//
//
// for(int i=0; i<n; i++) {
// for(int j=0; j<n; j++) {
// System.out.print(map[i][j] + " ");
// }
// System.out.println();
// }//마방진을 만들고 결과를 출력
//
// }
//}
//import java.util.*;
//public class Main {
// public static void main(String[] args) {
// Scanner t = new Scanner(System.in);
// int n = t.nextInt();
// int i, j;
// int k = 1;
// int sum = 0;
// int arr[][] = new int[n][n];
// for(i=0;i<n;i++) {
// for(j=0;j<n;j++) {
// arr[i][j] = k++;
// }
// }
// for(i=0;i<n;i++) {
// for(j=0;j<n;j++) {
// if(i==0 || i==n-1 || j==0 || j==n-1) {
// sum +=arr[i][j];
// }
// }
// }
// System.out.println(sum);
// }
//}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner t = new Scanner(System.in);
int x = 2;
int y = 2;
int i = 0;
int j = 0;
int k = 1;
int arr[][] = new int[11][11];
for(i=0;i<10;i++) {
for(j=0;j<10;j++) {
arr[i][j] = t.nextInt();
}
}
for(i=0;i<10;i++ ) {
for(j=0;j<10;j++) {
arr[x][y] =;
if(arr[x+1][y]==1) arr[x][y+1] = 9;
if(arr[x+1][y]==2) break;
else if(arr[x][y+1]==2) break;
else if(arr[9][9]==arr[x][y]) break;
else break;
}
}
for(i=0;i<10;i++) {
for(j=0;j<10;j++ ) {
System.out.print(arr[i][j] + " ");
}
System.out.println("");
}
}
}