만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Dumae

시간 제한2초메모리 제한1024 MB

요약
학생마다 허용된 순번 범위와 앞에 서야 하는 관계 M개가 주어질 때, 모든 조건을 만족하는 줄 순서를 찾고 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
위상 정렬, 그리디, 힙
정답자
아직 제출이 없습니다

문제

Dumae를 알고 있는가? KAIST 근처에서 가장 유명한 식당인 Dumae 숯불 바비큐다. 아직 문을 열지 않았는데도 많은 KAIST 학생이 줄을 선다. 학생들은 기다리는 시간이 얼마나 될지 궁금해서 자신의 순서를 추측하기 시작했다.

대기 줄에는 NN명의 학생이 서 있으며, 각 학생은 11부터 NN까지 서로 다른 학번을 가진다. 학번이 ii인 학생은 자신이 줄의 LiL_i번째, (Li+1)(L_i+1)번째, ⋯\cdots, (Ri−1)(R_i-1)번째, 또는 RiR_i번째 사람이라고 추측했다. 즉 학생 ii의 앞에 서 있는 사람의 수는 구간 [Li−1,Ri−1][L_i-1, R_i-1]에 속한다.

또한 MM개의 주장이 있다. ii번째 주장은 학생 viv_i가 줄에서 학생 uiu_i를 볼 수 있다는 것이다. 이는 학생 uiu_i가 학생 viv_i보다 앞에 서 있다는 뜻이다.

모든 추측과 주장을 만족하는 줄의 순서를 구하거나, 그런 순서가 없다고 보고하라.

입력

첫 줄에 두 정수 NN, MM이 주어진다 (1≤N≤300,0001 ≤ N ≤ 300,000, 0≤M≤1,000,0000 ≤ M ≤ 1,000,000).

다음 NN개의 줄에 두 정수 LiL_i, RiR_i가 주어진다 (1≤Li≤Ri≤N1 ≤ L_i ≤ R_i ≤ N).

다음 MM개의 줄에 두 정수 uiu_i, viv_i가 주어진다 (1≤ui≤N1 ≤ u_i ≤ N, 1≤vi≤N1 ≤ v_i ≤ N, ui≠viu_i ≠ v_i).

출력

조건을 만족하는 순서가 없으면 −1-1을 출력한다. 그렇지 않으면 NN개의 줄에 걸쳐 ii번째 줄에 앞에서 ii번째 학생의 학번을 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    1 3
    1 3
    1 3
    1 2
    2 3
    3 1
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    3 3
    1 3
    1 3
    1 3
    1 2
    2 3
    1 3
    
    예상 출력
    1
    2
    3