#include <stdio.h>
int k=0,f,stack[500][520]={},varr[520][520]={},a,b,c,d,q,sum=0,count=0,bef[501]={};
void rec(int j)
{
int i;
for(i=0;i<k;i++)
{
f=bef[i];
varr[j][f]=1;
}
}
void s(int i)
{
int j;
for(j=1;j<=a;j++)
{
if(stack[i][j]==1)
{
bef[k]=j;
k++;
rec(j);
s(j);
}
}
}
int main()
{
int i,j;
scanf("%d %d",&a,&b);
for(i=1;i<=b;i++)
{
scanf("%d %d",&c,&d);
stack[c][d]=1;
}
for(i=1;i<=a;i++)
{
k=0;
q=i;
s(i);
}
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
{
printf("%d ",stack[i][j]);
}
printf("\n");
}
printf("\n");
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
{
printf("%d ",varr[i][j]);
}
printf("\n");
}
for(i=1;i<=a;i++)
{
sum=0;
for(j=1;j<=a;j++)
{
sum=sum+stack[i][j]+varr[i][j];
}
if(sum>=a-1)
{
count++;
}
}
printf("%d",count);
}