작전 <<순열>>
시간 제한1초메모리 제한512 MB
미지의 순열의 위치들 사이 부등식이 순서대로 주어질 때, 순열을 유일하게 결정하는 가장 이른 접두사의 끝을 구하고, 불가능하면 -1을 출력한다.
문제
페트로프 장군은 열병식을 가장 좋아한다. 어느 날 열병식에 명의 병사가 참여했고, 편의상 부터 까지 번호가 붙어 있다. 병사들은 한 줄로 늘어섰고, 번 위치에는 번호가 인 병사가 섰다. 그 후 장군의 부관이 열을 따라 걸으며 순열이 장군이 생각한 것과 정확히 일치하는지 확인했다.
얼마 후 장군은 병사들을 다시 같은 순서로 세우고 싶어졌다. 하지만 그때 병사들을 어떻게 세웠는지 잊어버렸다. 다행히 장군의 부관은 기억력이 좋아서, 개의 위치 쌍 에 대해 번 위치에 섰던 병사의 번호가 번 위치에 섰던 병사의 번호보다 작다는 것을 기억하고 있다.
부관은 장군에게 쌍을 차례로 알려 주기 시작했다. 하지만 장군은 빨리 병사들을 세우기 시작하고 싶다. 부관이 처음 개의 위치 쌍을 알려 주는 순간 찾는 순열을 유일하게 결정할 수 있게 되는 최소 를 구하도록 도와주자.
입력
첫 번째 줄에 두 정수 과 이 주어진다. 이는 작전에 참여한 병사의 수와 부관이 기억하는 위치 쌍의 수이다 (; ).
다음 개 줄에는 부관이 기억하는 쌍이 장군에게 알려 주는 순서대로 주어진다. 각 줄에는 두 수 와 가 주어지며, 이는 번 위치에 있던 병사의 번호가 번 위치에 있던 병사의 번호보다 작다는 뜻이다 (; ).
각 쌍 는 입력 파일에 두 번 이상 나타나지 않는다. 입력 데이터는 올바르며, 부관이 기억하는 모든 조건을 만족하는 순열이 적어도 하나 존재한다.
출력
순열을 유일하게 복원할 수 있게 되는, 알려 준 위치 쌍의 최소 번호 를 출력한다. 입력 데이터에서 순열을 유일하게 복원할 수 없다면 을 출력한다.
힌트
첫 번째 예제에서 병사들은 순서로 서 있었다. 부관이 기억한 네 번째 수 쌍이 나온 뒤에 이미 이 순서를 복원할 수 있다.
두 번째 예제에서 입력 데이터를 만족하는 병사 배치는 , , , 네 가지가 있다.