#include <iostream>
using namespace std;
int latinski_kvadrat[6][6];
int n;
bool moze_broj(int red, int kolona, int broj)
{
for (int x = 0; x < n; x++)
if (latinski_kvadrat[red][x] == broj or latinski_kvadrat[x][kolona] == broj)
return false;
return true;
}
void resi(int red, int kolona)
{
if (red == n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << latinski_kvadrat[i][j];
cout << endl;
}
cout << endl;
return;
}
int sledeci_red = red;
if (kolona == n - 1)
sledeci_red++;
int sledeca_kolona;
if (kolona == n - 1)
sledeca_kolona = 0;
else
sledeca_kolona = kolona + 1;
if (latinski_kvadrat[red][kolona] != 0)
resi(sledeci_red, sledeca_kolona);
else
for (int broj = 1; broj <= n; broj++)
if (moze_broj(red, kolona, broj))
{
latinski_kvadrat[red][kolona] = broj;
resi(sledeci_red, sledeca_kolona);
//latinski_kvadrat[red][kolona] = 0;
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
string linija;
cin >> linija;
for (int j = 0; j < n; j++)
latinski_kvadrat[i][j] = linija[j] - '0';
}
resi(0, 0);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IGxhdGluc2tpX2t2YWRyYXRbNl1bNl07CmludCBuOwogCmJvb2wgbW96ZV9icm9qKGludCByZWQsIGludCBrb2xvbmEsIGludCBicm9qKQp7CiAgICBmb3IgKGludCB4ID0gMDsgeCA8IG47IHgrKykKICAgICAgICBpZiAobGF0aW5za2lfa3ZhZHJhdFtyZWRdW3hdID09IGJyb2ogb3IgbGF0aW5za2lfa3ZhZHJhdFt4XVtrb2xvbmFdID09IGJyb2opCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgIHJldHVybiB0cnVlOwp9CiAKdm9pZCByZXNpKGludCByZWQsIGludCBrb2xvbmEpCnsKICAgIGlmIChyZWQgPT0gbikKICAgIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgICAgICAgICAgICAgY291dCA8PCBsYXRpbnNraV9rdmFkcmF0W2ldW2pdOwogICAgICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgc2xlZGVjaV9yZWQgPSByZWQ7CiAgICBpZiAoa29sb25hID09IG4gLSAxKQogICAgICAgIHNsZWRlY2lfcmVkKys7CiAgICBpbnQgc2xlZGVjYV9rb2xvbmE7CiAgICBpZiAoa29sb25hID09IG4gLSAxKQogICAgICAgIHNsZWRlY2Ffa29sb25hID0gMDsKICAgIGVsc2UKICAgICAgICBzbGVkZWNhX2tvbG9uYSA9IGtvbG9uYSArIDE7CiAgICBpZiAobGF0aW5za2lfa3ZhZHJhdFtyZWRdW2tvbG9uYV0gIT0gMCkKICAgICAgICByZXNpKHNsZWRlY2lfcmVkLCBzbGVkZWNhX2tvbG9uYSk7CiAgICBlbHNlCiAgICAgICAgZm9yIChpbnQgYnJvaiA9IDE7IGJyb2ogPD0gbjsgYnJvaisrKQogICAgICAgICAgICBpZiAobW96ZV9icm9qKHJlZCwga29sb25hLCBicm9qKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbGF0aW5za2lfa3ZhZHJhdFtyZWRdW2tvbG9uYV0gPSBicm9qOwogICAgICAgICAgICAgICAgcmVzaShzbGVkZWNpX3JlZCwgc2xlZGVjYV9rb2xvbmEpOwogICAgICAgICAgICAgICAgLy9sYXRpbnNraV9rdmFkcmF0W3JlZF1ba29sb25hXSA9IDA7CiAgICAgICAgICAgIH0KfQogCmludCBtYWluKCkKewogICAgY2luID4+IG47CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgIAlzdHJpbmcgbGluaWphOwogICAgCWNpbiA+PiBsaW5pamE7CiAgICAJZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgICAgIGxhdGluc2tpX2t2YWRyYXRbaV1bal0gPSBsaW5pamFbal0gLSAnMCc7CiAgICB9CiAgICByZXNpKDAsIDApOwogICAgcmV0dXJuIDA7Cn0=