D. Anti-Sudoku

D. Anti-Sudoku

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

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.

The picture showing the correct sudoku solution:

 

Blocks are bordered with bold black color.

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

  • Any number in this field is in range [1;9][1;9];
  • each row contains at least two equal elements;
  • each column contains at least two equal elements;
  • each 3×33×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 tt independent test cases.

Input

The first line of the input contains one integer tt (1≤t≤1041≤t≤104) — the number of test cases. Then tt test cases follow.

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

Output

For each test case, print the answer — the initial field with at most 99 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

Copy

1
154873296
386592714
729641835
863725149
975314628
412968357
631457982
598236471
247189563

output

Copy

154873396
336592714
729645835
863725145
979314628
412958357
631457992
998236471
247789563
t = int(input())
for i in range(9*t):
    a=input()
    print(a.replace('1','9',1))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值