//结果正确但运行未通过
#include<bits/stdc++.h>
using namespace std;
int a[30];
bool b[30] = {false};
int n,total;
void print()
{
if(total<3){
for (int i = 1; i <= n; i++)
{
cout << a[i]<<" ";
}
cout << endl;
}
total++;
}
void dfs(int i)
{
if (i == n+1)
{ for (int i = 1; i <= n - 1; i++)
for (int j = i + 1; j <= n; j++)
if (abs(i - j) == abs(a[i] - a[j]))
return;
print();
}
for (int j = 1; j <= n; j++)
{
if (b[j] == false)
{
a[i] = j;
b[j] = true;
dfs(i + 1);
a[i] = 0;
b[j] = false;
}
}
}
int main()
{
cin >> n;
dfs(1);
cout << total << endl;
return 0;
}