#include<iostream>
#include<cmath>
using namespace std;
int n ;
long sum = 0;
int *x;
void print(int *x)
{
for(int i=1;i<=n;i++)
cout<<x[i]<<" ";
cout<<endl;
}
bool place (int k)
{
for(int j=1; j<k; j++)
if(abs(k-j) == abs(x[j]-x[k]) || (x[j] == x[k]))
return false;
return true;
}
/*void backtrack(int t) //递归方法
{
if(t > n){
sum++;
print(x);
}
else for(int i=1; i<=n; i++){
x[t] = i;
if(place(t)) backtrack(t+1);
}
}
*/
void backtrack() //迭代方法
{
x[1] =0;
int k=1;
while(k>0)
{
x[k] += 1;
while((x[k]<=n) && !place(k))
x[k] += 1;
if(x[k] <= n)
if(k == n){
print(x);
sum++;
}
else{
k++;
x[k]=0;
}
else k--;
}
}
//long nQueen(int nn)
void nQueen(int nn)
{
n = nn;
sum=0;
x = new int[n+1];
for(int i=0; i<=n; i++)
x[i]=0;
//backtrack(1);
backtrack();
// return sum;
}
int main()
{
//cout<<"请输入N皇后N的个数"<<endl;
while(cin>>n){
if(n<=0)
cout<<"no solute!"<<endl;
else
{
nQueen(n);
if(sum == 0)
cout<<"no solute!"<<endl;
}
}
return 0;
}