#include<bits×dc++.h>
using namespace std;
class Graph{
private:
int V;
vector<vector<int>> adj;
vector<bool> visited;
public:
Graph(int v) {
V = v;
adj = vector<vector<int>>(V, vector<int>(V, 0));
visited=vector<bool>(V,false);
}
void add(int u, int v){
adj[u][v]=1;
adj[v][u]=1;
}
bool pandu(int n){
for(int i=0;i<V;i++){
if(adj[n][i]==1&&visited[i]==false){
return false;
}
}
return true;
}
void DFS(){
stack<int> s;
s.push(0);
visited[0]=true;
while(!s.empty()){
for(int i=0;i<V;i++){
int cur=s.top();
if(pandu(cur)){
cout<<cur+1 <<endl;
s.pop();
}
if(adj[cur][i]==1&&visited[i]==false){
s.push(i);
visited[i]=true;
break;
}
}
}
}
};
int main(){
Graph g(8);
g.add(0,1);
g.add(0,2);
g.add(1,3);
g.add(1,4);
g.add(3,7);
g.add(2,5);
g.add(2,6);
g.add(5,6);
g.add(3,4);
g.DFS();
}