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 PYTHON3):

Solution:
"""
    Template written to be used by Python Programmers.
    Use at your own risk!!!!
    Owned by enraged(rating - 5 star at CodeChef and Specialist at Codeforces).
"""
import sys
from functools import lru_cache
from heapq import merge, heapify, heappop, heappush
from math import ceil, floor, gcd, fabs, factorial, fmod, sqrt, inf
from collections import defaultdict as dd, deque, Counter as c
from itertools import combinations as comb, permutations as perm
from bisect import bisect_left as bl, bisect_right as br, bisect
# sys.setrecursionlimit(2*pow(10, 6))
# sys.stdin = open("input.txt", "r")
# sys.stdout = open("output.txt", "w")
mod = pow(10, 9) + 7
mod2 = 998244353
def data(): return sys.stdin.readline().strip()
def out(var): sys.stdout.write(str(var))
def outln(var): sys.stdout.write(str(var)+"\n")
def l(): return list(sp())
def sl(): return list(ssp())
def sp(): return map(int, data().split())
def ssp(): return map(str, data().split())
def l1d(n, val=0): return [val for i in range(n)]
def l2d(n, m, val=0): return [l1d(n, val) for j in range(m)]


for _ in range(int(data())):
    mat = []
    for i in range(9):
        mat.append(list(data()))
    if mat[0][0] != '5':
        mat[0][0] = str(10 - int(mat[0][0]))
    else:
        mat[0][0] = '1'

    if mat[5][5] != '5':
        mat[5][5] = str(10 - int(mat[5][5]))
    else:
        mat[5][5] = '1'

    if mat[7][7] != '5':
        mat[7][7] = str(10 - int(mat[7][7]))
    else:
        mat[7][7] = '1'

    if mat[8][2] != '5':
        mat[8][2] = str(10 - int(mat[8][2]))
    else:
        mat[8][2] = '1'

    if mat[3][6] != '5':
        mat[3][6] = str(10 - int(mat[3][6]))
    else:
        mat[3][6] = '1'

    if mat[4][1] != '5':
        mat[4][1] = str(10 - int(mat[4][1]))
    else:
        mat[4][1] = '1'

    if mat[6][3] != '5':
        mat[6][3] = str(10 - int(mat[6][3]))
    else:
        mat[6][3] = '1'

    if mat[2][8] != '5':
        mat[2][8] = str(10 - int(mat[2][8]))
    else:
        mat[2][8] = '1'

    if mat[1][4] != '5':
        mat[1][4] = str(10 - int(mat[1][4]))
    else:
        mat[1][4] = '1'
    for i in mat:
        outln(''.join(i))