#include<bits/stdc++.h>
using namespace std;
int B[10][10];
bool V[10];
int R[10];
int sr,sc,ts;
void prgr(){
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
printf("%d ",B[i][j]);
}
printf("\n");
}
}
void queen(int x,int y,int c)
{
c++;
for(int i=0;i<8;i++){
if(B[x][i]==0){
B[x][i]=c;
}
if(B[i][y]==0){
B[i][y]=c;
}
}
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(i==x||j==y||abs(i-x)==abs(j-y)){
if(B[i][j]==0) B[i][j]=c;
}
}
}
B[x][y]=10;
//prgr();
//system("pause");
}
void unqueen(int x,int y,int c)
{
c++;
for(int i=0;i<8;i++){
if(B[x][i]==c){
B[x][i]=0;
}
if(B[i][y]==c){
B[i][y]=0;
}
}
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(i==x||j==y||abs(i-x)==abs(j-y)){
if(B[i][j]==c) B[i][j]=0;
}
}
}
B[x][y]=0;
}
void backtrack(int c)
{
for(int j=0;j<8;j++){
if(c==sc){
c++;
}
else if(B[c][j]==0&&V[j]==false){
queen(c,j,c);
V[j]=true;
R[c]=j;
backtrack(c+1);
V[j]=false;
unqueen(c,j,c);
}
}
if(c==8){
//prgr();
//system("pause");
printf("%2d ",++ts);
for(int i=0;i<8;i++)printf(" %d",R[i]+1);
printf("\n");
return;
}
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int t,q=0;
scanf("%d",&t);
while(q!=t){
if(q++!=0)printf("\n");
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
B[i][j]=false;
}
R[i]=0;
V[i]=false;
}
scanf("%d %d",&sr,&sc);
sr--,sc--;
queen(sc,sr,sc);
//prgr();
//system("pause");
R[sc]=sr;
V[sr]=true;
ts=0;
printf("SOLN COLUMN\n");
printf(" # 1 2 3 4 5 6 7 8\n");
printf("\n");
backtrack(0);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IEJbMTBdWzEwXTsKYm9vbCBWWzEwXTsKaW50IFJbMTBdOwppbnQgc3Isc2MsdHM7CnZvaWQgcHJncigpewogICAgZm9yKGludCBpPTA7aTw4O2krKyl7CiAgICAgICAgZm9yKGludCBqPTA7ajw4O2orKyl7CiAgICAgICAgICAgIHByaW50ZigiJWQgIixCW2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQp9CnZvaWQgcXVlZW4oaW50IHgsaW50IHksaW50IGMpCnsKICAgIGMrKzsKICAgIGZvcihpbnQgaT0wO2k8ODtpKyspewogICAgICAgIGlmKEJbeF1baV09PTApewogICAgICAgICAgICBCW3hdW2ldPWM7CiAgICAgICAgfQogICAgICAgIGlmKEJbaV1beV09PTApewogICAgICAgICAgICBCW2ldW3ldPWM7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpPTA7aTw4O2krKyl7CiAgICAJZm9yKGludCBqPTA7ajw4O2orKyl7CiAgICAJCWlmKGk9PXh8fGo9PXl8fGFicyhpLXgpPT1hYnMoai15KSl7CiAgICAJCQlpZihCW2ldW2pdPT0wKSBCW2ldW2pdPWM7CiAgICAJCX0KICAgIAl9CiAgICB9CiAgICBCW3hdW3ldPTEwOwogICAgLy9wcmdyKCk7CiAgICAvL3N5c3RlbSgicGF1c2UiKTsKfQp2b2lkIHVucXVlZW4oaW50IHgsaW50IHksaW50IGMpCnsKICAgIGMrKzsKICAgIGZvcihpbnQgaT0wO2k8ODtpKyspewogICAgICAgIGlmKEJbeF1baV09PWMpewogICAgICAgICAgICBCW3hdW2ldPTA7CiAgICAgICAgfQogICAgICAgIGlmKEJbaV1beV09PWMpewogICAgICAgICAgICBCW2ldW3ldPTA7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpPTA7aTw4O2krKyl7CiAgICAJZm9yKGludCBqPTA7ajw4O2orKyl7CiAgICAJCWlmKGk9PXh8fGo9PXl8fGFicyhpLXgpPT1hYnMoai15KSl7CiAgICAJCQlpZihCW2ldW2pdPT1jKSBCW2ldW2pdPTA7CiAgICAJCX0KICAgIAl9CiAgICB9CiAgICBCW3hdW3ldPTA7Cn0Kdm9pZCBiYWNrdHJhY2soaW50IGMpCnsKICAgIGZvcihpbnQgaj0wO2o8ODtqKyspewogICAgICAgIGlmKGM9PXNjKXsKICAgICAgICAgICAgYysrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKEJbY11bal09PTAmJlZbal09PWZhbHNlKXsKICAgICAgICAgICAgcXVlZW4oYyxqLGMpOwogICAgICAgICAgICBWW2pdPXRydWU7CiAgICAgICAgICAgIFJbY109ajsKICAgICAgICAgICAgYmFja3RyYWNrKGMrMSk7CiAgICAgICAgICAgIFZbal09ZmFsc2U7CiAgICAgICAgICAgIHVucXVlZW4oYyxqLGMpOwogICAgICAgIH0KICAgIH0KICAgIGlmKGM9PTgpewogICAgICAgIC8vcHJncigpOwogICAgICAgIC8vc3lzdGVtKCJwYXVzZSIpOwogICAgICAgIHByaW50ZigiJTJkICAgICAiLCsrdHMpOwogICAgICAgIGZvcihpbnQgaT0wO2k8ODtpKyspcHJpbnRmKCIgJWQiLFJbaV0rMSk7CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KfQppbnQgbWFpbigpCnsKICAgIC8vZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwogICAgLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgIGludCB0LHE9MDsKICAgIHNjYW5mKCIlZCIsJnQpOwogICAgd2hpbGUocSE9dCl7CiAgICAgICAgaWYocSsrIT0wKXByaW50ZigiXG4iKTsKICAgICAgICBmb3IoaW50IGk9MDtpPDg7aSsrKXsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajw4O2orKyl7CiAgICAgICAgICAgICAgICBCW2ldW2pdPWZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFJbaV09MDsKICAgICAgICAgICAgVltpXT1mYWxzZTsKICAgICAgICB9CiAgICAgICAgc2NhbmYoIiVkICVkIiwmc3IsJnNjKTsKICAgICAgICBzci0tLHNjLS07CiAgICAgICAgcXVlZW4oc2Msc3Isc2MpOwogICAgICAgIC8vcHJncigpOwogICAgICAgIC8vc3lzdGVtKCJwYXVzZSIpOwogICAgICAgIFJbc2NdPXNyOwogICAgICAgIFZbc3JdPXRydWU7CiAgICAgICAgdHM9MDsKICAgICAgICBwcmludGYoIlNPTE4gICAgICAgQ09MVU1OXG4iKTsKICAgICAgICBwcmludGYoIiAjICAgICAgMSAyIDMgNCA1IDYgNyA4XG4iKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgYmFja3RyYWNrKDApOwogICAgfQogICAgcmV0dXJuIDA7Cn0K