/*#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*#include<stdio.h>
int m,n,k,arr[101][101]= {},map[101][101]= {},tmp[100000]= {},cnt[10000]={},x,y,d,e,sum=0,f=0,g=0,h=0,q;
void p(int f,int g)
{
if(map[f][g]==1)
{
return;
}
if(f==0||f==m+1||g==0||g==n+1)
{
return;
}
tmp[h]++;
map[f][g]=1;
p(f-1,g);
p(f+1,g);
p(f,g-1);
p(f,g+1);
}
int main()
{
int i,j;
scanf("%d %d %d",&m,&n,&k);
for(i=0; i<k; i++)
{
for(j=0; j<4; j++)
{
scanf("%d",&arr[i][j]);
}
x=arr[i][0]+1;
y=arr[i][1]+1;
d=arr[i][2]+1;
e=arr[i][3]+1;
for(int r=y;r<e;r++)
{
for(int s=x;s<d;s++)
{
map[r][s]=1;
}
}
}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(map[i][j]==0)
{
p(i,j);
h++;
}
}
}
printf("%d\n",h);
for(i=0; i<h; i++)
{
for(j=0; j<h-1; j++)
{
if(tmp[j]>tmp[j+1])
{
q=tmp[j];
tmp[j]=tmp[j+1];
tmp[j+1]=q;
}
}
}
for(i=0; i<h; i++)
{
if(tmp[i]!=0)
{
cnt[i]=tmp[i];
printf("%d ",cnt[i]);
}
}
return 0;
}*/
#include<stdio.h>
int map[100][100] = {0},arr[101]= {},abc[101]= {},c=0,d=0,e=0,s=0,n, m;
void f()
{
for(int i=0; i<n; i++)
{
if(map[d][i]==1)
{
arr[i]=1;
}
map[i][d]=abc[d];
d++;
}
for(int i=0; i<n; i++)
{
if(arr[i]==1)
{
c++;
}
if(abc[i]==1)
{
e++;
}
}
if(c+e==m-1)
{
s++;
}
}
// [0, 1, 0, 1, 1, 1]: VISIT
// [0, 0, 0, 0, 0, 0]:
// 4 + 0 = 4, m - 1 = 5
// [0, 1, 0, 0, 0, 1]: visit
// [1, 0, 1, 0, 1, 0]:
// ----------------------------
// 2 + 3 = 5, m - 1 = 5 v
int main()
{
int x, y, i, j;
scanf("%d %d", &n, &m);
for(i=0; i<m; i++)
{
scanf("%d %d", &x, &y);
map[x][y] = 1;
}
f();
printf("%d\n",s);
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
printf("%d ",map[i][j]);
}
printf("\n");
}
return 0;
}



