/*
Test Case 1
8 10
1 2
1 3
2 4
2 5
2 6
3 7
3 8
4 5
6 7
7 8
*/
#include<stdio.h>
int visit[101] = {0};
int graph[101][101] = {0};
int n, g;
void dfs(int k) {
int i;
if(visit[k]==1) return ;
visit[k] = 1;
printf("[%d]", k);
printf("Visited Location\n");
for(i=1; i<=n; i++) {
printf("%d ", visit[i]);
}
printf("\n");
for(i=1; i<=n; i++) {
if(graph[k][i]==1) {
graph[k][i] = 0;
graph[i][k] = 0;
dfs(i);
}
}
}
int main() {
int x, y, i, j;
scanf("%d %d", &n, &g);
for(i=0; i<g; i++) {
scanf("%d %d", &x, &y);
graph[x][y] = 1;
graph[y][x] = 1;
}
for(i=1; i<=n; i++) {
for(j=1; j<=n; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
dfs(1);
}