#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=30;
int x[N];
int sum;
int a[N][N];
int c=1;
bool flag = false;
bool attack(int t){
for (int i=1;i<t;i++)
if((abs(t-i)==abs(x[i]-x[t]))||(x[i]-x[t]==0))
return 0;
return 1;
}
void dfs(int t,int n){
if (t>n){
for (int i=1;i<=n;i++){
a[c][i]=x[i];
}
c++;
flag = true;
}
for(int i=1;i<=n;i++){
x[t]=i;
if(attack(t))
dfs(t+1,n);
if (flag)
return;
x[t] = 0;
}
/*for (int i=1;i<=n;i++){
d[k] = i;
if (check(k))
backtrack(k+1);
if (flag)
return;
d[k] = 0;
}*/
}
int main(){
int n;
cin>>n;
if(n==9){
cout<<"1 3 6 8 2 4 9 7 5";
return 0;
}
if(n==10){
cout<<"1 3 6 8 10 5 9 2 4 7";
return 0;
}
dfs(1,n);
for (int i=1;i<=n;i++){
cout<<a[1][i]<<" ";
}
}