#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, p[14], v[14], dp[25], ds[25], nr;
int vezi(int i, int k){
if (v[i]) return 0;
if (dp[n + i - k]) return 0;
if (ds[i + k - 1]) return 0;
return 1;
}
void complet(int i, int k){
v[i] = 1;
p[k] = i;
dp[n + i - k] = 1;
ds[i + k - 1 ] = 1;
}
void gata(int i, int k){
v[i] = 0;
dp[n + i - k ] = 0;
ds[i + k - 1 ] = 0;
}
void back(int k){
int i;
if (k == n){
nr++;
if (nr == 1){
for (i = 1; i <= k; ++i)
g << p[i]<<" ";
g << "\n";
return;
}
}
k++;
for (i = 1; i <= n; ++i) {
if (vezi(i, k)) {
complet(i, k);
back(k);
gata(i, k);
}
}
}
int main(){
f >> n;
back(0);
g << nr;
f.close();
g.close();
return 0;
}