토너먼트

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

한 토너먼트에 nn명의 선수가 참가했다. 선수들은 등록한 순서대로 11번부터 nn번까지 번호를 받는다. 원래는 모든 선수 쌍이 한 번씩 경기를 치를 예정이었지만, 강한 바람 때문에 일부 경기만 치른 상태에서 토너먼트가 중단되었다. 시상식을 미룰 수 없었기 때문에, 심사위원단은 남은 경기를 치르지 못한 채로 최종 순위를 정해야 한다. 또한 두 선수가 같은 순위를 공유할 수는 없다.

순위를 정하기 위해 심판장은 다음 규칙을 세웠다.

  • 각 선수는 자신이 맞대결에서 이긴 모든 선수보다 순위에서 반드시 더 높은 자리에 있어야 한다.

이 규칙을 만족하는 순위는 여러 가지가 있을 수 있으므로, 심판장은 두 순위를 비교하는 방법도 정했다.

  • 순위 AA가 순위 BB보다 더 좋다는 것은, 두 순위가 처음으로 달라지는 가장 높은 자리에서 순위 AA에 더 먼저 등록한 선수(즉, 번호가 더 작은 선수)가 놓여 있다는 뜻이다.

가능한 가장 좋은 순위를 구하라. 지금까지 치른 경기 결과는 유효한 순위가 적어도 하나 존재함을 보장한다.

입력

첫째 줄에 공백으로 구분된 두 정수 nnmm이 주어진다 (2n1000002 \le n \le 100000, 0m1000000 \le m \le 100000). 여기서 nn은 선수의 수, mm은 치른 경기의 수이다. 이어지는 mm개의 줄에는 각 경기가 한 줄씩 주어지며, 공백으로 구분된 두 정수, 즉 이긴 선수의 번호와 진 선수의 번호가 이 순서대로 적혀 있다.

출력

가장 좋은 순위를 출력한다. 가장 높은 자리부터 가장 낮은 자리까지, 선수들의 번호를 한 줄에 하나씩 출력한다.