만드는 중입니다

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

프로그래밍 동아리

면접 대비

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

요약
각 멤버의 참석 구간이 주어질 때, 매주 참석자 누구도 아직 풀지 않은 가장 작은 번호의 문제를 구합니다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 힙, 시뮬레이션
정답자
아직 제출이 없습니다

문제

학교 프로그래밍 동아리는 주 1회 모여 매주 문제를 하나씩 푼다. 문제는 1번부터 번호가 매겨진 아주 두껍고 중요한 책에서 가져오며, 책에 있는 문제 수는 무한하다. 매주 참석한 회원들은 책을 펼쳐서, 그중 아무도 아직 풀지 않은 문제 가운데 번호가 가장 작은 문제를 찾아 푼다.

동아리는 회원을 붙잡아 두는 데 어려움을 겪고 있다. 회원 ii는 lil_i주차에 처음 참석하기 시작해서 rir_i주차까지 매주 참석하며, 그 이후에는 다시 오지 않는다.

매주 어떤 문제가 풀리는지 구하라.

입력

첫 줄에 주차 수 NN(1≤N≤1051 \le N \le 10^5)과 회원 수 KK(1≤K≤1051 \le K \le 10^5)가 공백으로 구분되어 주어진다. 주차는 11부터 NN까지 번호가 매겨진다. 이어지는 KK개의 줄에는 각각 회원 ii가 처음 참석하는 주 lil_i와 마지막으로 참석하는 주 rir_i가 공백으로 구분되어 주어진다(1≤li≤ri≤N1 \le l_i \le r_i \le N). 매주 최소 한 명 이상의 회원이 참석한다고 가정해도 된다.

출력

NN개의 줄을 출력한다. jj번째 줄에는 jj주차에 푼 문제의 번호를 출력한다.

예제1

  1. 예제 1

    입력
    12 5
    1 6
    7 8
    1 4
    3 9
    5 12
    
    예상 출력
    1
    2
    3
    4
    5
    6
    1
    2
    7
    3
    4
    8