#include <iostream>
using namespace std;
int n,ans;
bool vis[3][100],a[100];
void dfs(int i){
if(i>n){
ans++;
if(ans<=3){
for(int m=1;m<=n;m++){
cout<<a[m]<<" ";
}
cout<<endl;
}
return;
}
for(int j=1;j<=n;j++){
if(vis[0][j]==0&&vis[1][i-j+30]==0&&vis[2][i+j]==0){
a[i]=j;
vis[0][j]=1;
vis[1][i-j+30]=1;
vis[2][i+j]=1;
dfs(i+1);
vis[0][j]=0;
vis[1][i-j+30]=0;
vis[2][i+j]=0;
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<ans;
return 0;
}