만드는 중입니다

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

쓰러진 서버

시간 제한1초메모리 제한512 MB

요약
구간의 최솟값과 최댓값 메모가 주어질 때 모순이 없으면 사전순으로 가장 작은 순열을 복원하고, 모순이 있으면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
그리디, 행렬, 구현
정답자
아직 제출이 없습니다

문제

베를란드 프로그래밍 올림피아드에 참가자 nn명이 있으며, 번호는 1부터 nn까지입니다. 각 참가자는 1부터 nn까지의 서로 다른 등수를 받았고, aia_i는 ii등을 차지한 참가자의 번호입니다. 장애로 결과가 모두 사라졌습니다.

결과가 남아 있던 동안 심사위원 두 명이 각자 메모를 남겼습니다.

첫 번째 심사위원은 c1c_1개의 메모를 남겼습니다. 각 메모는 등수 lil_i부터 rir_i까지(양 끝 포함) 참가자 중 가장 작은 번호가 mim_i라는 내용입니다.

두 번째 심사위원은 c2c_2개의 메모를 남겼습니다. 각 메모는 등수 LiL_i부터 RiR_i까지(양 끝 포함) 참가자 중 가장 큰 번호가 MiM_i라는 내용입니다.

메모로부터 a1,a2,…,ana_1, a_2, \ldots, a_n을 복원하거나, 메모에 오류가 있다고 보고하세요. 조건에 맞는 배치가 여러 개면, 심사위원은 수열 a1,a2,…,ana_1, a_2, \ldots, a_n이 사전순으로 가장 작은 배치를 원합니다.

입력

첫 줄에 정수 nn, c1c_1, c2c_2가 주어집니다 (1≤n≤501 \le n \le 50; 0≤c1+c2≤500 \le c_1 + c_2 \le 50). 다음 c1c_1개 줄에는 첫 번째 심사위원의 메모가 정수 lil_i, rir_i, mim_i로 주어집니다 (1≤li≤ri≤n1 \le l_i \le r_i \le n; 1≤mi≤n1 \le m_i \le n). 그다음 c2c_2개 줄에는 두 번째 심사위원의 메모가 같은 형식으로 주어집니다.

출력

메모끼리 모순되면 -1을 출력하세요. 그렇지 않으면 모든 메모와 심사위원의 선호를 만족하는 배치를 정수 nn개 a1,a2,…,ana_1, a_2, \ldots, a_n으로 출력하세요. aia_i는 ii등을 차지한 참가자의 번호입니다.

예제3

  1. 예제 1

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

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

    입력
    4 1 0
    1 4 2
    
    예상 출력
    -1