Стіна#7761

Стіна

3 секунди
128 мегабайтів
Дуже легка

Джан-Джи будує стіну з цегли однакового розміру. Стіна складається з стовпців, пронумерованих зліва направо від до n - 1. Висотою стовпця називається кількість цеглин у ньому. Стовпці можуть мати різні висоти.

Будівництво відбувається наступним чином. Спочатку у всіх стовпцях немає жодної цеглини. Потім Джан-Джи виконує дій, кожна з яких є або додаванням, або видаленням цеглин. Будівництво вважається завершеним після виконання всіх дій.

Перед кожним дією Джан-Джи вибирає деякий інтервал підряд стоячих стовпців і значення висоти . Після цього він виконує одну з наступних дій:

Визначте остаточну форму стіни.

Вхідні дані

Перша строчка містить два цілих числа і k~(1 \le n \le 2 \cdot 10^6, 1 \le k \le 5 \cdot 10^5) — кількість стовпців у стіні та кількість операцій.

Кожна із наступних строчок містить чотири значення:

op_i, left_i, right_i, height_i~(0 \le i \le k - 1)
  • op_i — тип операції: відповідає додаванню, — видаленню.

  • Індекси стовпців у -й операції змінюються від left_i до right_i включно. Гарантується, що left_i \le right_i.

  • height_i — параметр висоти у даній операції.

Вихідні дані

Виведіть чисел, кожне у окремому рядку. У рядку повинно бути зазначено кінцеву кількість цеглин у стовпці i~(0 \le i \le n - 1).

Приклади

Нехай є стовпців і операцій зміни стіни. У всіх запитах границі інтервалів включаються. Стан стіни після виконання кожної операції показано нижче.

  • Оскільки спочатку висоти всіх стовпців дорівнюють нулю, після фази кожний стовпець з по буде містити по цеглини. Стовпці та залишаються порожніми.

  • У фазі цеглини видаляються у стовпцях з по так, щоб у кожному з них залишилося по цеглині. Стовпець залишається порожнім. Стовпці з по поза інтервалом запиту, тому вони не змінюються.

  • У фазі зміни у стовпцях з по не відбуваються, оскільки їх висота не перевищує .

  • Після дії кількість цеглин у стовпцях і збільшується до .

  • Після дії у стовпці стає цеглин.

  • Дія видаляє всі цеглини у стовпцях і .

Приклад 1

Loading
Loading