만드는 중입니다

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

도시

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

요약
건물 N개에 1부터 N까지 서로 다른 높이를 배정해 구간별 최소 높이 조건 M개 중 M-1개 이상을 만족하는 계획을 찾습니다. 불가능하면 EI SAA를 출력합니다.
난이도

보통10점 중 7점

유형
그리디, 세그먼트 트리, 배열
정답자
아직 제출이 없습니다

문제

건설업자가 새 도로에 NN개의 건물을 지으려고 합니다. 건물에는 11번부터 NN번까지 번호가 매겨져 있습니다. 시청은 경관에 변화를 주기 위해 각 건물의 높이가 11층부터 NN층 사이이고, 어떤 두 건물도 높이가 같지 않아야 한다고 정합니다.

시청은 이 밖에도 MM개의 추가 조건을 정해 두었습니다. 각 추가 조건은 도로의 일정 구간에 세울 건물의 최소 높이를 정합니다. 이 사업은 중요하므로, 시청은 필요하다면 추가 조건 하나를 포기할 수 있습니다.

조건을 만족하는 건설 계획을 찾거나, 그런 계획이 존재하지 않음을 밝히세요.

입력

첫 줄에 건물 수 NN과 추가 조건 수 MM이 주어집니다 (2≤N≤3⋅1052 \le N \le 3 \cdot 10^5, 1≤M≤3⋅1051 \le M \le 3 \cdot 10^5). 다음 MM개의 줄에는 각각 정수 HiH_i, SiS_i, FiF_i가 주어집니다 (2≤Hi≤N2 \le H_i \le N, 1≤Si≤Fi≤N1 \le S_i \le F_i \le N). 이는 SiS_i번 건물부터 FiF_i번 건물까지(양 끝 포함) 모든 건물이 HiH_i층 이상이어야 한다는 뜻입니다.

출력

건설 계획이 존재하지 않으면 한 줄에 EI SAA를 출력합니다. 계획이 존재하면 첫 줄에 SAAB를 출력하고, 둘째 줄에 건물 11번부터 NN번까지의 높이를 나타내는 정수 NN개를 출력합니다. 출력한 계획은 주어진 추가 조건 중 최소 M−1M-1개를 만족해야 합니다. 가능한 계획이 여러 개라면 그중 아무거나 출력하면 됩니다.

예제3

  1. 예제 1

    입력
    2 2
    2 1 1
    2 1 2
    
    예상 출력
    SAAB
    2 1
    
  2. 예제 2

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

    입력
    4 2
    4 1 2
    3 2 4
    
    예상 출력
    EI SAA