#include<bits/stdc++.h>
using namespace std;
#define MAX 100
int used1[MAX],used2[MAX],used3[MAX],n,ans=0,a[1000];
void dfs(int x)
{
if(x>n)
{
ans++;
if(ans<=3)
{
for(int i=1;i<=n;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
}
return;
}
for(int i=1;i<=n;i++)
{
if(used1[i]==0 && used2[x+i]==0 && used3[x-i+15]==0)
{
a[x]=i;
used1[i]=1,used2[x+i]=1,used3[x-i+15]=1;
dfs(x+1);
used1[i]=0,used2[x+i]=0,used3[x-i+15]=0;
}
}
}
int main()
{
cin>>n;
dfs(1);
cout<<ans;
return 0;
}