// AUTHOR : SOUMEN SEN
#include<bits/stdc++.h>
using namespace std;
vector<int>adj[100];
int visited[100];
void revisited(int n) {
for(int i = 1; i<=n; i++) {
visited[i] = 0;
}
}
void dfs(int node) {
visited[node] = 1;
for(auto neighbour:adj[node]) {
if(!visited[neighbour]) {
dfs(neighbour);
}
}
cout<<node<<" ";
}
void bfs(int node) {
queue<int> q;
visited[node] = 1;
q.push(node);
while(!q.empty()) {
int current = q.front();
q.pop();
cout<<current<<" ";
for(auto neighbour : adj[current]) {
if(!visited[neighbour]) {
visited[neighbour] = 1;
q.push(neighbour);
}
}
}
}
int main() {
freopen("input.txt","r",stdin);
int vertices, edges;
cin>>vertices>>edges;
revisited(vertices);
for(int i = 0; i<edges; i++) {
int u,w;
cin>>u>>w;
if(u == w) {
adj[u].push_back(w);
}
else {
adj[u].push_back(w);
adj[w].push_back(u);
}
}
cout<<"\n\n--------------------------------- adjacency List -------------------------\n\n";
for(int i = 1; i<=vertices; i++) {
cout<<i<<" : ";
for(auto height : adj[i]) {
cout<<height<<" ";
}
cout<<endl;
}
cout<<"-------------------- Travarsal ----------------------------\n\n";
cout<<"---------------------DFS---------------\n";
dfs(1);
cout<<endl;
cout<<"---------------------BFS---------------\n";
revisited(vertices);
bfs(1);
cout<<endl;
}
Ly8gQVVUSE9SIDogU09VTUVOIFNFTiAKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5hZGpbMTAwXTsKaW50IHZpc2l0ZWRbMTAwXTsKCnZvaWQgcmV2aXNpdGVkKGludCBuKSB7Cglmb3IoaW50IGkgPSAxOyBpPD1uOyBpKyspIHsKCQl2aXNpdGVkW2ldID0gMDsKCX0KfQoKdm9pZCBkZnMoaW50IG5vZGUpIHsKCXZpc2l0ZWRbbm9kZV0gPSAxOwoJZm9yKGF1dG8gbmVpZ2hib3VyOmFkaltub2RlXSkgewoJCWlmKCF2aXNpdGVkW25laWdoYm91cl0pIHsKCQkJZGZzKG5laWdoYm91cik7CgkJfQoJfQoJY291dDw8bm9kZTw8IiAiOwp9Cgp2b2lkIGJmcyhpbnQgbm9kZSkgewoJcXVldWU8aW50PiBxOwoJdmlzaXRlZFtub2RlXSA9IDE7CglxLnB1c2gobm9kZSk7CgoJd2hpbGUoIXEuZW1wdHkoKSkgewoJCWludCBjdXJyZW50ID0gcS5mcm9udCgpOwoJCXEucG9wKCk7CgkJY291dDw8Y3VycmVudDw8IiAiOwoKCQlmb3IoYXV0byBuZWlnaGJvdXIgOiBhZGpbY3VycmVudF0pIHsKCQkJaWYoIXZpc2l0ZWRbbmVpZ2hib3VyXSkgewoJCQkJdmlzaXRlZFtuZWlnaGJvdXJdID0gMTsKCQkJCXEucHVzaChuZWlnaGJvdXIpOwoJCQl9CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKCWludCB2ZXJ0aWNlcywgZWRnZXM7CgljaW4+PnZlcnRpY2VzPj5lZGdlczsKCglyZXZpc2l0ZWQodmVydGljZXMpOwoKCWZvcihpbnQgaSA9IDA7IGk8ZWRnZXM7IGkrKykgewoJCWludCB1LHc7CgkJY2luPj51Pj53OwoJCWlmKHUgPT0gdykgewoJCQlhZGpbdV0ucHVzaF9iYWNrKHcpOwoJCX0KCQllbHNlIHsKCQkJYWRqW3VdLnB1c2hfYmFjayh3KTsKCQkJYWRqW3ddLnB1c2hfYmFjayh1KTsKCQl9Cgl9CmNvdXQ8PCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGFkamFjZW5jeSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIjsKCWZvcihpbnQgaSA9IDE7IGk8PXZlcnRpY2VzOyBpKyspIHsKCQljb3V0PDxpPDwiIDogIjsKCQlmb3IoYXV0byBoZWlnaHQgOiBhZGpbaV0pIHsKCQkJY291dDw8aGVpZ2h0PDwiICI7CgkJfQoJCWNvdXQ8PGVuZGw7Cgl9Cgljb3V0PDwiLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhdmFyc2FsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIjsKCgljb3V0PDwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tREZTLS0tLS0tLS0tLS0tLS0tXG4iOwoJZGZzKDEpOwoJY291dDw8ZW5kbDsKCgljb3V0PDwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tQkZTLS0tLS0tLS0tLS0tLS0tXG4iOwoJcmV2aXNpdGVkKHZlcnRpY2VzKTsKCWJmcygxKTsKCWNvdXQ8PGVuZGw7Cn0=