#include<stdio.h>
#include<stdlib.h>
int p[50],a[50],b[50],c[50],ans;
int n;
int asd[53][53];
void dfs(int x){
int i,j,k;
if(x==n+1){
ans++;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
asd[i][j]=0;
for(i=1;i<=n;i++){
asd[i][p[i]]=1;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
printf("%d",asd[i][j]);
if(n==j)puts("");
}
puts("");
return;
}
for(i=1;i<=n;i++)
if(a[i]+b[x+i]+c[x-i+20]==0){
a[i]=1;b[x+i]=1;c[x-i+20]=1;
p[x]=i;
dfs(x+1);
a[i]=0;b[x+i]=0;c[x-i+20]=0;
}
}
int main(){
int i,j,k;
scanf("%d",&n);
dfs(1);
printf("%d
",ans);
return 0;
}