Sudoku is a phenomenon all over the world. This addictive logic game, originated in the U.K. and popularized in Japan, has spread across the globe. The puzzles are now syndicated daily in newspapers in Australia, Germany, Scandinavia, …even Mireia is addicted to it!

The rules are easy: You are given a 9× 9 grid with some numbers in it, and you should fill in the grid so that every row, every column and every 3×3 box contains the numbers from 1 to 9. For instance, the puzzle on the left has as unique solution the grid on the right:

unit=0.6cm
linewidth=0.1pt
(9,9)
[linewidth=1.25pt](0,0)(0,9)
(1,0)(1,9)
(2,0)(2,9)
[linewidth=1.25pt](3,0)(3,9)
(4,0)(4,9)
(5,0)(5,9)
[linewidth=1.25pt](6,0)(6,9)
(7,0)(7,9)
(8,0)(8,9)
[linewidth=1.25pt](9,0)(9,9)

[linewidth=1.25pt](0,0)(9,0) (0,1)(9,1) (0,2)(9,2) [linewidth=1.25pt](0,3)(9,3) (0,4)(9,4) (0,5)(9,5) [linewidth=1.25pt](0,6)(9,6) (0,7)(9,7) (0,8)(9,8) [linewidth=1.25pt](0,9)(9,9)

[c](0.5,0.5)4 [c](2.5,0.5)5 [c](3.5,0.5)6

[c](1.5,1.5)2 [c](2.5,1.5)9 [c](3.5,1.5)1

[c](4.5,2.5)7 [c](5.5,2.5)5 [c](8.5,2.5)8

[c](2.5,3.5)6 [c](3.5,3.5)4 [c](4.5,3.5)2

[c](1.5,4.5)4 [c](2.5,4.5)8 [c](6.5,4.5)5 [c](7.5,4.5)6

[c](4.5,5.5)6 [c](5.5,5.5)1 [c](6.5,5.5)8

[c](0.5,6.5)1 [c](3.5,6.5)9 [c](4.5,6.5)3

[c](5.5,7.5)6 [c](6.5,7.5)4 [c](7.5,7.5)5

[c](5.5,8.5)2 [c](6.5,8.5)3 [c](8.5,8.5)7

(9,9) [linewidth=1.25pt](0,0)(0,9) (1,0)(1,9) (2,0)(2,9) [linewidth=1.25pt](3,0)(3,9) (4,0)(4,9) (5,0)(5,9) [linewidth=1.25pt](6,0)(6,9) (7,0)(7,9) (8,0)(8,9) [linewidth=1.25pt](9,0)(9,9)

[linewidth=1.25pt](0,0)(9,0) (0,1)(9,1) (0,2)(9,2) [linewidth=1.25pt](0,3)(9,3) (0,4)(9,4) (0,5)(9,5) [linewidth=1.25pt](0,6)(9,6) (0,7)(9,7) (0,8)(9,8) [linewidth=1.25pt](0,9)(9,9)

[c](0.5,0.5)4 [c](1.5,0.5)7 [c](2.5,0.5)5 [c](3.5,0.5)6 [c](4.5,0.5)8 [c](5.5,0.5)9 [c](6.5,0.5)1 [c](7.5,0.5)3 [c](8.5,0.5)2

[c](0,1) [c](0.5,0.5)8 [c](1.5,0.5)2 [c](2.5,0.5)9 [c](3.5,0.5)1 [c](4.5,0.5)4 [c](5.5,0.5)3 [c](6.5,0.5)6 [c](7.5,0.5)7 [c](8.5,0.5)5

[c](0,2) [c](0.5,0.5)6 [c](1.5,0.5)3 [c](2.5,0.5)1 [c](3.5,0.5)2 [c](4.5,0.5)7 [c](5.5,0.5)5 [c](6.5,0.5)9 [c](7.5,0.5)4 [c](8.5,0.5)8

[c](0,3) [c](0.5,0.5)5 [c](1.5,0.5)1 [c](2.5,0.5)6 [c](3.5,0.5)4 [c](4.5,0.5)2 [c](5.5,0.5)8 [c](6.5,0.5)7 [c](7.5,0.5)9 [c](8.5,0.5)3

[c](0,4) [c](0.5,0.5)2 [c](1.5,0.5)4 [c](2.5,0.5)8 [c](3.5,0.5)3 [c](4.5,0.5)9 [c](5.5,0.5)7 [c](6.5,0.5)5 [c](7.5,0.5)6 [c](8.5,0.5)1

[c](0,5) [c](0.5,0.5)7 [c](1.5,0.5)9 [c](2.5,0.5)3 [c](3.5,0.5)5 [c](4.5,0.5)6 [c](5.5,0.5)1 [c](6.5,0.5)8 [c](7.5,0.5)2 [c](8.5,0.5)4

[c](0,6) [c](0.5,0.5)1 [c](1.5,0.5)5 [c](2.5,0.5)7 [c](3.5,0.5)9 [c](4.5,0.5)3 [c](5.5,0.5)4 [c](6.5,0.5)2 [c](7.5,0.5)8 [c](8.5,0.5)6

[c](0,7) [c](0.5,0.5)3 [c](1.5,0.5)8 [c](2.5,0.5)2 [c](3.5,0.5)7 [c](4.5,0.5)1 [c](5.5,0.5)6 [c](6.5,0.5)4 [c](7.5,0.5)5 [c](8.5,0.5)9

[c](0,8) [c](0.5,0.5)9 [c](1.5,0.5)6 [c](2.5,0.5)4 [c](3.5,0.5)8 [c](4.5,0.5)5 [c](5.5,0.5)2 [c](6.5,0.5)3 [c](7.5,0.5)1 [c](8.5,0.5)7

Write a program to solve Sudoku puzzles. Your program will be tested against Sudokus that have appeared in some newspapers. These are guaranteed to have a unique solution.

**Input**

Input begins with a line with a number *n* ≥ 1.
Follow *n* Sudokus, each one consisting of nine lines,
each one with nine space-separated characters,
which are digits from 1 to 9 and dots.
The latter indicate cells that are still empty.
There is a blank line before every puzzle.

**Output**

Print the solutions using the same format as in the input:
First, print *n* on a line.
For each puzzle, print nine lines,
each with nine digits separated by spaces.
Print a blank line before every solution.

Public test cases

**Input**

2 . . . . . 2 3 . 7 . . . . . 6 4 5 . 1 . . 9 3 . . . . . . . . 6 1 8 . . . 4 8 . . . 5 6 . . . 6 4 2 . . . . . . . . 7 5 . . 8 . 2 9 1 . . . . . 4 . 5 6 . . . . . 7 . . . . 2 . . 4 1 . . . . . 7 6 . 2 . . . 8 . 3 . 9 . . . 6 5 . 8 2 . . . . . 2 . . . . . 2 6 . 9 1 . . . 8 . 7 . 1 . . . 5 . 5 9 . . . . . 3 3 . . 5 . . . . 8

**Output**

2 9 6 4 8 5 2 3 1 7 3 8 2 7 1 6 4 5 9 1 5 7 9 3 4 2 8 6 7 9 3 5 6 1 8 2 4 2 4 8 3 9 7 5 6 1 5 1 6 4 2 8 7 9 3 6 3 1 2 7 5 9 4 8 8 2 9 1 4 3 6 7 5 4 7 5 6 8 9 1 3 2 7 3 5 9 6 2 1 8 4 1 9 8 4 3 5 7 6 2 2 6 4 1 8 7 3 5 9 9 7 3 6 5 4 8 2 1 5 8 1 7 2 3 9 4 6 4 2 6 8 9 1 5 3 7 8 4 7 3 1 6 2 9 5 6 5 9 2 7 8 4 1 3 3 1 2 5 4 9 6 7 8

Information

- Author
- Jordi Petit
- Language
- English
- Official solutions
- C++
- User solutions
- C++
- Event
- Tercer Concurs de Programació de la UPC - Semifinal
- Date
- 2005-09-14