#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
void callMyDFSFunction(int** a , int n , int sv , bool* visited) {
visited[sv] = true;
cout << sv << " ";
for(int i=0 ; i<n ; i++) {
if(sv == i){ continue; }
if(a[sv][i] and !visited[i]){ callMyDFSFunction(a,n,i,visited); }
}
}
void DFS(int** a , int n){
bool* visited = new bool[n]{false};
for(int i=0 ; i<n ; i++) {
if(!visited[i]) {
callMyDFSFunction(a,n,i,visited);
}
}
}
int main(int argc, char const *argv[])
{
int n;
cin >> n;//No of nodes
int** a = new int*[n]();
for(int i=0 ; i<n ; i++){ a[i] = new int[n](); }
bool* visited = new bool[n]{false};
int edges , x , y;
cin >> edges;
for(int i=0 ; i<edges ; i++){
cin >> x >> y;
a[x][y] = 1;
a[y][x] = 1;
}
for(int i=0;i<n;i++){for(int j=0;j<n;j++){cout<<a[i][j]<<" ";}cout<<endl;}
cout << endl;
DFS(a,n);
for(int i=0 ; i<n ; i++){ delete[] a[i]; }
delete[] a;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZW5kbCAiXG4iCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGNhbGxNeURGU0Z1bmN0aW9uKGludCoqIGEgLCBpbnQgbiAsIGludCBzdiAsIGJvb2wqIHZpc2l0ZWQpIHsKCXZpc2l0ZWRbc3ZdID0gdHJ1ZTsKCWNvdXQgPDwgc3YgPDwgIiAiOwoJZm9yKGludCBpPTAgOyBpPG4gOyBpKyspIHsKCQlpZihzdiA9PSBpKXsgY29udGludWU7IH0KCQlpZihhW3N2XVtpXSBhbmQgIXZpc2l0ZWRbaV0peyBjYWxsTXlERlNGdW5jdGlvbihhLG4saSx2aXNpdGVkKTsgfQoJfQp9CnZvaWQgREZTKGludCoqIGEgLCBpbnQgbil7Cglib29sKiB2aXNpdGVkID0gbmV3IGJvb2xbbl17ZmFsc2V9OwoJZm9yKGludCBpPTAgOyBpPG4gOyBpKyspIHsKCQlpZighdmlzaXRlZFtpXSkgewoJCQljYWxsTXlERlNGdW5jdGlvbihhLG4saSx2aXNpdGVkKTsKCQl9Cgl9Cn0KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoJaW50IG47CgljaW4gPj4gbjsvL05vIG9mIG5vZGVzCglpbnQqKiBhID0gbmV3IGludCpbbl0oKTsKCWZvcihpbnQgaT0wIDsgaTxuIDsgaSsrKXsgYVtpXSA9IG5ldyBpbnRbbl0oKTsgfQoKCWJvb2wqIHZpc2l0ZWQgPSBuZXcgYm9vbFtuXXtmYWxzZX07CgkKCWludCBlZGdlcyAsIHggLCB5OwoJY2luID4+IGVkZ2VzOwoJZm9yKGludCBpPTAgOyBpPGVkZ2VzIDsgaSsrKXsKCQljaW4gPj4geCA+PiB5OwoJCWFbeF1beV0gPSAxOwoJCWFbeV1beF0gPSAxOwoJfQoJZm9yKGludCBpPTA7aTxuO2krKyl7Zm9yKGludCBqPTA7ajxuO2orKyl7Y291dDw8YVtpXVtqXTw8IiAiO31jb3V0PDxlbmRsO30KCWNvdXQgPDwgZW5kbDsKCURGUyhhLG4pOwoJCglmb3IoaW50IGk9MCA7IGk8biA7IGkrKyl7IGRlbGV0ZVtdIGFbaV07IH0KCWRlbGV0ZVtdIGE7CglyZXR1cm4gMDsKfQ==