Milk Bottle Data

There is a box of the shape of an N × N lattice. Each grid of the lattice may contain a milk bottle or none. Mr. Smith wrote down the data of the box by making a record for each row from left to right and each column from top to bottom. In each record, ‘1’ indicaes that there is a bottle in the corresponding grid and ‘0’ does not. Unfortunately, the order of these records is thrown into confusion, and some of these records have corrupted. Now it’s up to you to provide a program to recover these data: i.e. to give the original arrangement of the box and give real values for those corrupted data. Input The input file contains a line with a integer N indicating the number of test cases. A blank line follows. After that there are N test cases, where ‘2’ denotes that the corresponding character has been corrupted. Each line in the file represents a record. There is a blank line between datasets. Output For each dataset, you should output the original arrangement of the box, and show the record number for each column on the top of the lattice, and show the record number for each row to the left of the lattice (see the sample below). You are required to give only one possible result if there are many, and you should give the indication ‘impossible’ if there is no possibility of original arrangement. Print a blank line between datasets. Sample Input 1 01210 21120 21001 12110 12101 12101 00011 22222 11001 10010 Sample Output 98627 4 10110 10 10010 1 01110 3 01001 5 11101