#include<cstdio>
int n,a[8],counts,map[8][8];
void print(int x){
if(x==n){
++counts;
printf("%d\n",counts);
for(int i=0;i<n;++i){
for(int j=0;j<n;++j)
printf("%d ",map[i][j]);
putchar('\n');
}
puts("---------------------------------");
return;
}
for(int i=0;i<n;++i){
a[x]=i;
int ok=1;
for(int j=0;j<x;++j){
if((a[x]==a[j])||(a[x]+x==j+a[j])||(j-a[j]==x-a[x])){
ok=0;break;
}
}
if(ok){
map[x][i]=1;
print(x+1);
map[x][i]=0;
}
}
}
int main(){
n=8;
print(0);
return 0;
}