#include <stdio.h>
#define NV 6 // number of vertices <-- 이것은 고정이니 수정 금지
/*
* 아래 2개 함수를 구현하시오. 전역변수 등은 필요에 따라 선언 가능
*
1) void addEdge (int graph[][NV], int v1, int v2)
- vertex v1과 v2 사이에 weight 1인 edge를 추가한다.
- edge는 undirected이다.
2) void DepthFirstSearch(int graph[][NV], int start_vertex)
- graph에 대해 start_vertex부터 DFS를 수행
- vertex를 DFS를 이용해서 방문할 때 마다 vertex 번호 (0 ~ 5) 출력
이때, vertex 번호 사이는 공백 1개로 구분.
마지막 vertex 번호 뒤에도 공백 1개가 있어야 하고, 줄바꿈 문자는 없어야 함.
start_vertex부터 출력되어야 함.
- DFS과정에서 vertex가 stack에 추가될 때 "vertex번호가 낮은 것을 먼저 push"
(주의! 먼저 push되면 나중에 pop되니, 방문순서는 반대가 되겠지요)
*/
// ---------------------- 이하 절대 수정 금지 -----------------------------------
int main(void) {
int v1 = 0;
int v2 = 0;
int graph[NV][NV] = { 0 };
while (1) {
scanf("%d %d", &v1, &v2);
if (v1 < 0) {
break;
}
addEdge(graph, v1, v2);
}
DepthFirstSearch(graph, -v1);
return 0;
}