만드는 중입니다

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

털모자 장사

면접 대비

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

요약
각 상인은 L번 마을부터 R번 마을까지 매일 1씩 오른 가격을 제시하고 각 마을은 제시된 가장 높은 가격을 출력합니다.
난이도

보통10점 중 4점

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

문제

알마티와 타라즈를 잇는 고속도로 주변에 마을 NN개가 있고, 1번부터 NN번까지 차례로 번호가 붙어 있다. 겨울이 시작되자 상인 MM명이 이 마을에서 털모자를 팔기 시작했다. 상인은 규칙 두 가지를 지킨다. 한 마을에서는 하루만 장사하고, 날마다 가격을 올린다.

ii번 상인은 이렇게 움직인다.

  1. LiL_i번 마을에서 가격 XiX_i로 장사를 시작한다.
  2. 하루가 지날 때마다 번호가 1 큰 옆 마을로 옮긴다. 어제 jj번 마을에서 팔았다면 오늘은 j+1j+1번 마을에서 판다.
  3. 하루가 지날 때마다 가격을 1 올린다. 어제 가격이 xx였다면 오늘 가격은 x+1x+1이다.
  4. RiR_i번 마을에서 털모자를 팔고 나면 장사를 그만둔다.

마을마다 겨울 동안 그 마을에서 매겨진 가격 가운데 가장 높은 값을 구하라.

입력

첫째 줄에 마을 수 NN과 상인 수 MM이 주어진다 (1≤N≤3000001 \le N \le 300000, 1≤M≤3000001 \le M \le 300000).

다음 MM개 줄에 정수 세 개 LiL_i, RiR_i, XiX_i가 주어진다 (1≤Li≤Ri≤N1 \le L_i \le R_i \le N, 1≤Xi≤1091 \le X_i \le 10^9). 차례대로 ii번 상인이 처음 장사한 마을 번호, 마지막으로 장사한 마을 번호, 시작 가격이다.

출력

정수 NN개를 한 줄에 공백 한 칸으로 구분해 출력한다. ii번째 수는 ii번 마을에서 매겨진 가장 높은 가격이다. 장사가 한 번도 없었던 마을은 0을 출력한다.

예제2

  1. 예제 1

    입력
    5 2
    1 3 2
    2 4 6
    
    예상 출력
    2 6 7 8 0
    
  2. 예제 2

    입력
    6 4
    4 4 3
    1 2 5
    5 6 1
    6 6 1
    
    예상 출력
    5 6 0 3 1 2