#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int b[100];//储存第k行的放置皇后的列数
int n,ans=0;
void print(){
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
if(j==b[i]) cout<<"1 ";
else cout<<"0 ";
}
cout<<endl;
}
cout<<endl;
}
void queen(int k){
if(k==n+1) {
print();
ans++;
return;
}
for(int i=1;i<=n;i++){
b[k]=i;
bool flag=1;
for(int j=1;j<k;j++){
if(b[k]==b[j]||abs(b[k]-b[j])==abs(k-j))
{
flag=0;
break;
}
}
if(flag) queen(k+1);
}
}
int main(){
cin>>n;
queen(1);
cout<<ans<<endl;
return 0;
}