L. Древний сундук
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 MB
ввод
стандартный ввод
вывод
стандартный вывод

Впечатлившись фильмом «Пираты Корсарского моря 8», Поликарп решил найти клад, который по легенде закопан на одном из пляжей Берляндии. Следуя советам главного героя фильма, Поликарп быстро нашел и раскопал сундук с кладом.

К его разочарованию, на сундуке висел огромный замок, состоящий из n вращающихся дисков. На каждом из дисков записаны все целые числа от  - 1013 до 1013. Также на каждом диске есть ровно одна важная позиция, в которой находится ровно одно число. Каждый из дисков можно прокручивать в любую сторону, чтобы изменять числа, стоящие в важных позициях.

Чтобы открыть замок, нужно прокрутить некоторые диски таким образом, чтобы выполнялись m условий. Условие i гласит, что сумма чисел, записанных на важных позициях дисков с номерами от li до ri включительно, должна равняться числу si.

На рисунке изображено расположение чисел на дисках в важных позициях для первого примера. Выделенные позиции являются важными.

Помогите Поликрапу! Выведите расположение дисков замка, при котором его можно открыть, либо сообщите, что замок открыть невозможно.

Входные данные

В первой строке заданы два целых числа n и m (1 ≤ n, m ≤ 3·105) — количество дисков на замке и количество необходимых для его открытия условий.

В каждой из следующих m строк следуют по три целых числа li, ri и si (1 ≤ li ≤ ri ≤ n,  - 3·107 ≤ si ≤ 3·107) — описание очередного условия. Сначала следует номер самого левого диска, затем номер самого правого диска, а после этого требуемая сумма чисел на важных позициях дисков с номерами от li до ri включительно.

Выходные данные

Если невозможно открыть замок, выведите в первую строку «NO» (без кавычек).

В противном случае, выведите в первую строку «YES» (без кавычек). Во вторую строку выведите n чисел, которые должны стоять на важных позициях дисков для открытия замка (то есть все m условий из входных данных должны выполняться для выведенного расположения дисков). Если ответов несколько, разрешается вывести любой из них.

Примеры
Входные данные
5 4
1 2 5
1 3 8
2 5 11
4 5 3
Выходные данные
YES
0 5 3 -8 11
Входные данные
5 4
2 3 5
1 3 8
2 5 11
4 5 3
Выходные данные
NO
Примечание

В первом примере суммы на соответствующих отрезках действительно равны заданным: a1 + a2 = 0 + 5 = 5 = s1, a1 + a2 + a3 = 8 = s2, a2 + a3 + a4 + a5 = 11 = s3 и a4 + a5 = 3 = s4.

Во втором примере можно доказать, что замок открыть невозможно. Для этого рассмотрим сумму на отрезке [2, 5]: с одной стороны a2 + a3 + a4 + a5 = (a2 + a3) + (a4 + a5) = s1 + s4 = 5 + 3 = 8, с другой стороны a2 + a3 + a4 + a5 = (a2 + a3 + a4 + a5) = s3 = 11.