#include<iostream>
#include<windows.h>
using namespace std;
int myCount =1;
int arr[8][8];
int order[8];
int myNext[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};
int judge(int a,int b){
int flag=0;
int aa,bb;
for(int j=0;j<8;j++){
aa=a;
bb=b;
for(int k=0;k<8;k++){
aa +=myNext[j][0];
bb +=myNext[j][1];
if(aa>=0&&aa<8&&bb>=0&&bb<8){
if(arr[aa][bb]==1){
flag=1;
break;
}
}
else{
break;
}
}
if(flag==1){
break;
}
}
if(flag==1){
return 1;
}
else{
return 0;
}
}
void eightQueue(int index){
if(index==8){
cout<<myCount<<":";
for(int i=0;i<8;i++){
cout<<order[i]<<" ";
}
myCount++;
cout<<endl;
}
for(int i=0;i<8;i++){
if(judge(i,index)==0){
order[index]=i;
arr[i][index]=1;
eightQueue(index+1);
arr[i][index]=0;
}
}
}
int main(){
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
arr[i][j]=0;
}
}
eightQueue(0);
return 0;
}