Куличики-2 Двое друзей Петя и Вася снова играют в песочнице. Петя расчистил n мест, расположенных в один ряд, на которых собирается строить куличики. Время от времени он выбирает некоторую позицию номер i из этого ряда и строит на ней новый куличик некоторой высоты newh. Если на этой позиции до этого был куличик, то Петя сначала его ломает, а потом строит новый.
Иногда в процесс куличикостроения вмешивается и Вася. Он делает горизонтальный взмах лопаткой для песка и некоторые куличики на некотором непрерывном отрезке уменьшают свою высоту. Более точно, если он производит взмах от куличика номер l до куличика номер r на высоте h, то все куличики на отрезке от l до r, у которых высота была больше h, принимают высоту равную h.
Таким образом, процесс их игры можно описать несколькими операциями двух видов:
Операция вида 1 i newh означает, что Петя строит на позиции i новый куличик с высотой newh. Старый куличик при этом уничтожается. Можно считать, что изначально на всех позициях были куличики высотой 0.
Операция вида 2 l r h означает, что Вася производит взмах лопаткой от куличика номер l до куличика номер r на высоте h. Все куличики на этом отрезке, имеющие высоту большую чем h, уменьшаются до этой высоты.
После долгой игры приятели пошли домой, а куличики остались в песочнице. Требуется для каждой позиции определить куличик какой высоты оказался на ней.
Формат входных данных В первой строке содержатся через пробел два целых числа n и q --- число позиций, на которых строились куличики и число операций, которые друзья сделали при этом. 1 ≤ n, q ≤ 3 * 105.
В следующих q строках описаны операции над куличиками, сделанные ребятами в том порядке, в котором они производились. Эти операции имеют вид либо
1 i newh, где 1 ≤ i ≤ n, 0 ≤ newh ≤ 109,
либо
2 l r h, где 1 ≤ l ≤ r ≤ n, 0 ≤ h ≤ 109.
Формат результата Вывести n чисел через пробел. Число на позиции i должно быть равно высоте куличика, который оказался на этой позиции по окончании игры Пети и Васи. Если в процессе игры на некоторой позиции куличики не строились, нужно для неё вывести 0.
Двое друзей Петя и Вася снова играют в песочнице. Петя расчистил n мест, расположенных в один ряд, на которых собирается строить куличики. Время от времени он выбирает некоторую позицию номер i из этого ряда и строит на ней новый куличик некоторой высоты newh. Если на этой позиции до этого был куличик, то Петя сначала его ломает, а потом строит новый.
Иногда в процесс куличикостроения вмешивается и Вася. Он делает горизонтальный взмах лопаткой для песка и некоторые куличики на некотором непрерывном отрезке уменьшают свою высоту. Более точно, если он производит взмах от куличика номер l до куличика номер r на высоте h, то все куличики на отрезке от l до r, у которых высота была больше h, принимают высоту равную h.
Таким образом, процесс их игры можно описать несколькими операциями двух видов:
Операция вида 1 i newh означает, что Петя строит на позиции i новый куличик с высотой newh. Старый куличик при этом уничтожается. Можно считать, что изначально на всех позициях были куличики высотой 0.
Операция вида 2 l r h означает, что Вася производит взмах лопаткой от куличика номер l до куличика номер r на высоте h. Все куличики на этом отрезке, имеющие высоту большую чем h, уменьшаются до этой высоты.
После долгой игры приятели пошли домой, а куличики остались в песочнице. Требуется для каждой позиции определить куличик какой высоты оказался на ней.
Формат входных данных
В первой строке содержатся через пробел два целых числа n и q --- число позиций, на которых строились куличики и число операций, которые друзья сделали при этом. 1 ≤ n, q ≤ 3 * 105.
В следующих q строках описаны операции над куличиками, сделанные ребятами в том порядке, в котором они производились. Эти операции имеют вид либо
1 i newh, где 1 ≤ i ≤ n, 0 ≤ newh ≤ 109,
либо
2 l r h, где 1 ≤ l ≤ r ≤ n, 0 ≤ h ≤ 109.
Формат результата
Вывести n чисел через пробел. Число на позиции i должно быть равно высоте куличика, который оказался на этой позиции по окончании игры Пети и Васи. Если в процессе игры на некоторой позиции куличики не строились, нужно для неё вывести 0.
Примеры
Входные данные
5 14
1 3 4
1 2 7
2 2 5 6
1 5 2
1 4 8
1 1 7
2 1 4 5
1 5 12
2 3 5 10
1 2 0
2 1 3 6
2 4 4 0
1 2 9
2 1 5 8
Результат работы
5 8 4 0 8