페인트볼
시간 제한1초메모리 제한256 MB
서로 보이는 이웃 중에서 각 플레이어의 과녁을 정해 모든 플레이어가 정확히 한 번씩 맞도록 하며 사전 순으로 가장 작은 배정을 출력합니다.
문제
마렉과 동기들이 대학 과정을 모두 마치고 페인트볼 경기로 졸업을 자축했다. 한 시간쯤 지나자 이상한 상황이 벌어졌다. 남은 총알이 참가자마다 정확히 하나씩이었다. 호기심이 많은 마렉은 아무도 움직이지 않는다고 할 때 모두가 정확히 한 번씩 맞는 일이 가능한지 알고 싶어졌다.
총알이 하나씩 남은 시점의 상황을 서로를 볼 수 있는 참가자 쌍의 목록으로 준다. 어떤 참가자가 다른 참가자를 볼 수 있으면 그 참가자를 쏠 수 있다. 모두가 정확히 한 번씩 맞도록 참가자마다 표적을 정하라.
다시 말해 참가자 는 자기가 볼 수 있는 참가자 중 한 명을 표적으로 고르고, 표적으로 지목된 횟수가 모든 참가자에게 정확히 1이어야 한다.
입력
첫 줄에 참가자 수 과 서로를 볼 수 있는 쌍의 수 이 공백으로 구분되어 주어진다 (, ). 참가자에게는 번부터 번까지 번호가 붙어 있다.
이어지는 개의 줄에는 각각 두 정수 와 가 공백으로 구분되어 주어진다 (). 참가자 와 가 서로를 볼 수 있다는 뜻이다. 같은 쌍은 두 번 이상 주어지지 않는다.
출력
모두가 정확히 한 번씩 맞는 표적 배정이 없으면 첫 줄에 Impossible을 출력한다.
배정이 있으면 개의 줄을 출력한다. 번째 줄에는 참가자 의 표적 번호를 쓴다. 배정이 여러 개면 수열 (참가자 의 표적, 참가자 의 표적, ..., 참가자 의 표적)이 사전순으로 가장 앞서는 것 하나만 출력한다.