#include<iostream> int num,zu; int data[100][2]={0}; int a[10][10]={0}; int visit[10]={0}; int flag=0; typedef struct node { int x; int c; }node; node point[10000]={0}; int fan(int i) { if(i==1) {return 2;} else {return 1;} } void bfs(int i) { int tou=0; int wei=1; point[tou].x=i; point[tou].c=1; visit[i]=1; while(tou<wei) { if(flag==1) { break; } for(int k=1;k<=num;k++) { if(a[point[tou].x][k]==1) { a[point[tou].x][k]=0; if(visit[k]!=0) { int p=visit[k]; int q=point[tou].c; if(p==q) { flag=1; break;} else{ int h=fan(point[tou].c); point[wei].x=k; point[wei].c=h; visit[k]=h; wei++; } }else{ int r=fan(point[tou].c); point[wei].c=r; point[wei].x=k; wei++; visit[k]=r; } } } tou++; } } int main() { freopen("input.txt","r",stdin); while(scanf("%d%d",&num,&zu)!=EOF) { for(int i=0;i<zu;i++) { for(int j=0;j<2;j++) { scanf("%d",&data[i][j]); } } for(int i=0;i<zu;i++) { a[data[i][0]][data[i][1]]=1; } for(int i=1;i<=num;i++) { for(int j=1;j<=num;j++) { printf("%d",a[i][j]); } printf("\n"); } bfs(1); if(flag==1) { printf("no"); }else { for(int i=1;i<10;i++) { if(visit[i]==1) { printf("%d",i); } } } } }