#include<bits/stdc++.h>
using namespace std;
vector<int> ans;//存放第i列的行数
int n;
int sum,total;
void dfs(int x,int n){
if(x==n){
while(sum<=3){
for(int i=0;i<n;i++){
cout<<ans[i];
}
cout<<endl;
sum++;
}
total++;
}
else{
if(x==0){
// cout<<1;
for(int i=0;i<n;i++){ //特判第0列
ans[0]=i;
dfs(1,n);
}
}
else{
for(int i=0;i<n;i++){//第x列依次尝试放在i行处
for(int j=0;j<x;j++){
// cout<<1;
if(i==ans[j]) continue;//判断三个条件,如果不满足则跳过
if(i+x==j+ans[j]) continue;
if(x-i==j-ans[j]) continue;
ans[x]=i;//若满足条件就存入ans
dfs(x+1,n);//摆放下一列
}
}
}
}
}
int main(){
cin>>n;
dfs(0,n);
cout<<total;
}