#include<bits/stdc++.h>
using namespace std;
int n;
int cnt;
int arr[1024];
char map1[1024][1024];
bool check(int k){
for(int i=0;i<k;i++)
{
if(arr[i]==arr[k]||abs(k-i)==abs(arr[k]-arr[i])){
return false;
}
}
return true;
}
void dfs(int k){
if(k==n)
{
cnt++;
if(cnt<=3){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(map1[i][j]=='&'){
cout<<j+1<<" ";
}
}
}
cout<<endl;
}
return;
}
for(int i=0;i<n;i++){
arr[k]=i;
if(check(k)){
map1[k][i]='&';
dfs(k+1);
map1[k][i]='*';
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
map1[i][j]='*';
}
}
dfs(0);
cout<<cnt<<endl;
}