만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

기이한 여행

시간 제한6초메모리 제한2048 MB

요약
트리 구조의 도시 n개가 주어질 때, 도로가 없는 구간을 정확히 k번 이동하는 사전순으로 가장 작은 방문 순서를 구하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
트리, 그리디, DFS
정답자
아직 제출이 없습니다

문제

Eddy는 nn개의 도시를 가로지르는 여행을 계획하고 있다. 도시들은 n−1n-1개의 도로로 연결되어 있다. 각 도로는 두 도시를 잇고 양방향으로 통행할 수 있다. 어떤 두 도시든 도로만으로 서로 오갈 수 있다.

Eddy는 모든 도시를 정확히 한 번씩 방문하는 여행을 원한다. 시작 도시와 마지막 도시는 어디든 상관없다. 도로만으로는 모든 도시를 정확히 한 번씩 방문하지 못할 수도 있다. 다행히 Eddy는 도로로 직접 연결되지 않은 두 도시 사이를 비행기로 이동할 수 있다. Eddy는 여행 중에 비행기를 정확히 kk번 타고 싶어 한다.

Eddy의 여행 계획을 도와라.

입력

첫 줄에 정수 nn과 kk가 주어진다 (0≤k<n≤5000 \le k < n \le 500). nn은 Eddy가 방문하는 도시의 수이고, kk는 Eddy가 타고 싶은 비행기의 횟수이다.

다음 n−1n-1개의 줄에는 각각 정수 aa와 bb (1≤a<b≤n1 \le a < b \le n)가 주어진다. 이는 도시 aa와 도시 bb를 잇는 도로가 있다는 뜻이다. 어떤 도시에서든 도로만으로 다른 모든 도시에 갈 수 있다고 보장된다.

출력

Eddy가 방문하는 순서대로 도시 번호 nn개를 출력한다. 각 도시는 정확히 한 번씩 나타나야 하며, 여행에서 비행기는 정확히 kk번 사용해야 한다. 가능한 여행 경로가 여럿이면 사전순으로 가장 앞선 경로를 출력한다. 가능한 경로가 없으면 −1-1을 출력한다.

예제2

  1. 예제 1

    입력
    4 1
    1 2
    1 3
    1 4
    
    예상 출력
    2 1 3 4
    
  2. 예제 2

    입력
    4 0
    1 2
    1 3
    1 4
    
    예상 출력
    -1