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:
t = int(input())

def solve(g):
	g[0][0] = 1 if g[0][0] != 1 else 2
	g[1][4] = 1 if g[1][4] != 1 else 2
	g[2][8] = 1 if g[2][8] != 1 else 2
	g[3][7] = 1 if g[3][7] != 1 else 2
	g[4][1] = 1 if g[4][1] != 1 else 2
	g[5][3] = 1 if g[5][3] != 1 else 2
	g[6][6] = 1 if g[6][6] != 1 else 2
	g[7][2] = 1 if g[7][2] != 1 else 2
	g[8][5] = 1 if g[8][5] != 1 else 2
	return grid

def checkAnti(g):
	for r in grid:
		fine = False
		seen = set()
		for d in r:
			if d in seen:
				fine = True
				break
			else:
				seen.add(d)
	if not fine:
		print("BAD")
	for c in range(0, len(grid[0])):
		fine = False
		seen = set()
		for r in grid:
			if r[c] in seen:
				fine = True
				break
			else:
				seen.add(r[c])
	if not fine:
		print("BAD")

	for n in range(0, 9):
		for j in [[0,1,2], [3,4,5], [6,7,8]]:
			for i in [[0,1,2], [3,4,5], [6,7,8]]:
				fine = False
				seen = set()
				for jx in j:
					for ix in i: 
						if grid[jx][ix] in seen:
							fine = True
							break
						else:
							seen.add(grid[jx][ix])
	if not fine:
		print("BAD")
	#print("FINE")

for _ in range(0, t):
	grid = []
	for _ in range(0, 9):
		grid.append(list(map(int, list(str(input())))))
	#print(grid)
	a = solve(grid)
	#checkAnti(grid)
	for l in grid:
		print("".join(list(map(str, l))))