시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
한 장이 조커인 N장의 카드가 왼쪽에서 오른쪽으로 놓여 있다. 조커는 항상 맨 오른쪽 카드이다.
한 번의 이동에서 현재 놓인 카드의 위치 A와 B를 고른다. 두 위치의 카드는 모두 조커가 아니어야 하며, A번 위치부터 B번 위치까지의 모든 카드를 함께 제거한다. 제거한 뒤에는 오른쪽에 있던 카드들이 순서를 유지한 채 빈칸을 메운다. 이 이동은 (A, B)로 기록된다.
모든 이동이 끝나면 테이블에는 조커 한 장만 남아야 한다. 그러나 기록된 K개의 이동은 임의의 순서로 섞였고, 일부 숫자가 바뀌었을 수도 있다.
주어진 K개의 기록을 어떤 순서로 실행했을 때 조커만 남길 수 있는지 판별하고, 가능하다면 그런 실행 순서 하나를 출력하라.
첫째 줄에 카드의 수 N과 이동의 수 K가 공백으로 구분되어 주어진다.
1 <= K < N <= 1,000,000,000
다음 K개의 줄에는 기록된 이동 (A, B)를 나타내는 두 정수 A와 B가 공백으로 구분되어 주어진다. 항상 A <= B이다.
가능한 실행 순서가 있다면 K개의 줄에 이동을 실행할 순서대로 출력한다. 각 줄에는 해당 이동의 A와 B를 공백으로 구분해 출력한다.
가능한 순서가 없다면 -1을 출력한다.