#include <bits/stdc++.h>

using namespace std; const int maxn=1e5+5; int n,ans=0; int a[maxn]; int col[maxn],row[maxn],line[maxn],rline[maxn]; void DFS(int k){ if(k==n+1){ if(ans<3){ for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } cout<<endl; } ans++; return ; } for(int j=1;j<=n;j++){ if(col[j]==0&&row[j]==0&&line[j+k]==0&&rline[k-j+n]==0){ a[k]=j; col[j]=row[j]=1; line[j+k]=rline[k-j+n]=1; DFS(k+1); col[j]=row[j]=0; line[j+k]=rline[k-j+n]=0;

    }
}

} int main() { cin>>n; DFS(1); cout<<ans; return 0; }