왕의 순시

1번 도시에서 출발해 나머지 모든 도시를 정확히 한 번씩 거쳐 1번 도시로 돌아오는 사전 순으로 가장 작은 경로를 구합니다.

어려움8그래프백트래킹DFS아직 제출이 없습니다시간 제한10초메모리 제한512 MB

문제

칼 왕은 책임감이 강하고 부지런한 통치자다. 해마다 나라 곳곳을 돌며 모든 도시가 잘 지내는지 직접 확인한다.

나라에는 도시가 nn개, 도로가 mm개 있다. 통행을 관리하려고 모든 도로는 일방통행으로 만들었다. 도시 aa에서 도시 bb로 가는 도로가 있어도 그 도로로 bb에서 aa로 갈 수는 없다.

칼은 수도에서 출발해 수도가 아닌 도시를 정확히 한 번씩 들르고 다시 수도로 돌아오는 경로를 따라 순시하려고 한다.

교통부 장관인 당신은 그런 경로를 찾아내거나, 그런 경로가 없다는 사실을 밝혀야 한다.

입력

첫 줄에 도시의 수 nn과 도로의 수 mm이 주어진다. (2n1000002 \le n \le 100\,000, 0mn+200 \le m \le n + 20)

다음 mm개 줄에는 각각 정수 aia_ibib_i가 주어진다. (1ai,bin1 \le a_i, b_i \le n) 도시 aia_i에서 도시 bib_i로 가는 일방통행 도로가 있다는 뜻이다. 도시는 1번부터 nn번까지 번호가 붙어 있고, 수도는 1번이다. 같은 도로가 여러 번 주어지기도 하고, ai=bia_i = b_i인 도로가 주어지기도 한다.

출력

수도에서 출발해 수도가 아닌 도시를 정확히 한 번씩 지나 수도로 돌아오는 경로가 있으면, 경로에 나오는 도시 번호 n+1n+1개를 공백으로 구분해 한 줄에 출력한다. 수도는 경로의 맨 앞과 맨 뒤에 모두 적는다. 그런 경로가 여럿이면 n+1n+1개의 수를 앞에서부터 차례로 비교해 사전순으로 가장 작은 것을 출력한다.

그런 경로가 없으면 There is no route, Karl! 한 줄을 출력한다.