// 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<<"\t"<<i<<": ";
for(auto height : adj[i]) {
cout<<height<<" ";
}
cout<<endl;
}
cout<<"-------------------- Travarsal ----------------------------\n\n";
cout<<"---------------------DFS---------------\n";
cout<<"\t";
dfs(1);
cout<<endl;
cout<<endl;
cout<<"---------------------BFS---------------\n";
revisited(vertices);
cout<<"\t";
bfs(1);
cout<<endl;
cout<<endl;
}
Ly8gQVVUSE9SIDogU09VTUVOIFNFTgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8aW50PmFkalsxMDBdOwppbnQgdmlzaXRlZFsxMDBdOwoKdm9pZCByZXZpc2l0ZWQoaW50IG4pIHsKCWZvcihpbnQgaSA9IDE7IGk8PW47IGkrKykgewoJCXZpc2l0ZWRbaV0gPSAwOwoJfQp9Cgp2b2lkIGRmcyhpbnQgbm9kZSkgewoJdmlzaXRlZFtub2RlXSA9IDE7Cglmb3IoYXV0byBuZWlnaGJvdXI6YWRqW25vZGVdKSB7CgkJaWYoIXZpc2l0ZWRbbmVpZ2hib3VyXSkgewoJCQlkZnMobmVpZ2hib3VyKTsKCQl9Cgl9Cgljb3V0PDxub2RlPDwiICI7Cn0KCnZvaWQgYmZzKGludCBub2RlKSB7CglxdWV1ZTxpbnQ+IHE7Cgl2aXNpdGVkW25vZGVdID0gMTsKCXEucHVzaChub2RlKTsKCgl3aGlsZSghcS5lbXB0eSgpKSB7CgkJaW50IGN1cnJlbnQgPSBxLmZyb250KCk7CgkJcS5wb3AoKTsKCQljb3V0PDxjdXJyZW50PDwiICI7CgoJCWZvcihhdXRvIG5laWdoYm91ciA6IGFkaltjdXJyZW50XSkgewoJCQlpZighdmlzaXRlZFtuZWlnaGJvdXJdKSB7CgkJCQl2aXNpdGVkW25laWdoYm91cl0gPSAxOwoJCQkJcS5wdXNoKG5laWdoYm91cik7CgkJCX0KCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwoJaW50IHZlcnRpY2VzLCBlZGdlczsKCWNpbj4+dmVydGljZXM+PmVkZ2VzOwoKCXJldmlzaXRlZCh2ZXJ0aWNlcyk7CgoJZm9yKGludCBpID0gMDsgaTxlZGdlczsgaSsrKSB7CgkJaW50IHUsdzsKCQljaW4+PnU+Pnc7CgkJaWYodSA9PSB3KSB7CgkJCWFkalt1XS5wdXNoX2JhY2sodyk7CgkJfQoJCWVsc2UgewoJCQlhZGpbdV0ucHVzaF9iYWNrKHcpOwoJCQlhZGpbd10ucHVzaF9iYWNrKHUpOwoJCX0KCX0KCWNvdXQ8PCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGFkamFjZW5jeSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIjsKCWZvcihpbnQgaSA9IDE7IGk8PXZlcnRpY2VzOyBpKyspIHsKCgkJY291dDw8Ilx0Ijw8aTw8IjogIjsKCQlmb3IoYXV0byBoZWlnaHQgOiBhZGpbaV0pIHsKCQkJY291dDw8aGVpZ2h0PDwiICI7CgkJfQoJCWNvdXQ8PGVuZGw7Cgl9Cgljb3V0PDwiLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhdmFyc2FsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIjsKCgljb3V0PDwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tREZTLS0tLS0tLS0tLS0tLS0tXG4iOwoJY291dDw8Ilx0IjsKCWRmcygxKTsKCWNvdXQ8PGVuZGw7Cgljb3V0PDxlbmRsOwoKCWNvdXQ8PCItLS0tLS0tLS0tLS0tLS0tLS0tLS1CRlMtLS0tLS0tLS0tLS0tLS1cbiI7CglyZXZpc2l0ZWQodmVydGljZXMpOwoJY291dDw8Ilx0IjsKCWJmcygxKTsKCWNvdXQ8PGVuZGw7Cgljb3V0PDxlbmRsOwp9