Problem: You are given a correct solution of the sudoku puzzle. If you don't know what is the sudoku, you can read about it [here](http://tiny.cc/636xmz).

The picture showing the correct sudoku solution:

<image>

Blocks are bordered with bold black color.

Your task is to change at most 9 elements of this field (i.e. choose some 1 ≤ i, j ≤ 9 and change the number at the position (i, j) to any other number in range [1; 9]) to make it anti-sudoku. The anti-sudoku is the 9 × 9 field, in which:

  * Any number in this field is in range [1; 9]; 
  * each row contains at least two equal elements; 
  * each column contains at least two equal elements; 
  * each 3 × 3 block (you can read what is the block in the link above) contains at least two equal elements. 



It is guaranteed that the answer exists.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases. Then t test cases follow.

Each test case consists of 9 lines, each line consists of 9 characters from 1 to 9 without any whitespaces — the correct solution of the sudoku puzzle.

Output

For each test case, print the answer — the initial field with at most 9 changed elements so that the obtained field is anti-sudoku. If there are several solutions, you can print any. It is guaranteed that the answer exists.

Example

Input


1
154873296
386592714
729641835
863725149
975314628
412968357
631457982
598236471
247189563


Output


154873396
336592714
729645835
863725145
979314628
412958357
631457992
998236471
247789563

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;
public class AntiSudoku
{
    public static void main(String[] args)throws Exception
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw=new PrintWriter(System.out);
        int t=Integer.parseInt(br.readLine());
        while(t-->0)
        {
            String s[]=new String[9];
            for(int i=0;i<9;i++)
            {
                s[i]=(br.readLine()).trim();
            }
            char x[]={0,3,6,1,4,7,2,5,8};
            char c='1';
            while(true)
            {
                
                if(s[0].charAt(x[0])!=c && s[1].charAt(x[1])!=c && s[2].charAt(x[2])!=c && s[3].charAt(x[3])!=c)
                {
                    String y=s[0];
                    s[0]=c+y.substring(1);
                    y=s[1];
                    s[1]=y.substring(0,3)+c+y.substring(4);
                    y=s[2];
                    s[2]=y.substring(0,6)+c+y.substring(7);
                    y=s[3];
                    s[3]=y.substring(0,1)+c+y.substring(2);
                    break;
                }
                else
                {
                    c++;
                }
            }
		c='1';
            while(true)
            {
                
                if(s[4].charAt(x[4])!=c && s[5].charAt(x[5])!=c && s[6].charAt(x[6])!=c && s[7].charAt(x[7])!=c && s[8].charAt(x[8])!=c)
                {
                    String y=s[4];
                    s[4]=y.substring(0,4)+c+y.substring(5);
                    y=s[5];
                    s[5]=y.substring(0,7)+c+y.substring(8);
                    y=s[6];
                    s[6]=y.substring(0,2)+c+y.substring(3);
                    y=s[7];
                    s[7]=y.substring(0,5)+c+y.substring(6);
                    y=s[8];
                    s[8]=y.substring(0,8)+c;
                    
                    break;
                }
                else
                {
                    c++;
                }
            }
            for(int i=0;i<9;i++)
            {
                pw.println(s[i]);
            }
        }
        pw.flush();
    }
}