시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB60314011724.124%

문제

그래프에서 사이클이란, 한 정점에서 같은 정점까지, 반복되는 간선이 없으며, 길이가 $0$이 아닌 경로이다.

사이클이 존재하지 않는 그래프가 주어진다.

우리는 이 그래프의 정점 중에서 연결된 간선이 하나인 정점을 가장자리 정점이라고 정의하자.

이 그래프의 가장자리 정점을 동시에 없애는 행동을 반복하면서, 그래프가 일직선의 모양이 되면 남아있는 정점의 집합을 그래프의 줄기라고 정의하자. 단, 가장자리 정점의 개수가 둘 이하라면 그래프가 일직선 모양이라고 한다.

위 그림과 같은 그래프가 있다고 할 때, 아래와 같이 가장자리 정점과 연결된 간선을 빨간색으로 표시하면 아래와 같다.

빨간색 간선과 연결된 가장자리 정점의 연결을 끊으면 아래 그림과 같이 일직선 모양으로 연결된 그래프의 줄기가 남는다. 만약 그래프가 일직선 모양이 되었다면, 가장자리 정점이 더 존재하더라도 더 이상 가장자리 정점들을 없애지 않는다.

이때 그래프의 줄기를 이루는 정점을 구하는 프로그램을 작성하시오.

입력

입력의 첫 번째 줄에는 처음 그래프의 정점의 수 $N$이 주어진다. $(2 \le N \le 100\,000)$

이후 $N-1$줄에 걸쳐 각 간선으로 연결된 두 정점의 번호 $a, b$가 입력된다. $(0 \le a,\ b < N,\ a \ne b)$

출력

출력의 첫 번째 줄에 그래프의 줄기를 이루는 정점의 번호들을 오름차순으로 정렬하고 공백으로 구분하여 출력한다.

예제 입력 1

10
8 4
4 1
8 5
4 9
5 6
6 2
5 0
8 7
2 3

예제 출력 1

2 4 5 6 8

예제 입력 2

10
0 2
6 5
6 4
1 9
0 1
0 6
0 8
6 7
1 3

예제 출력 2

0 1 6

본문에서 설명한 예제이다.

힌트

그래프의 줄기를 이루는 정점의 개수는 한 개 이상이다.