Однажды у Зейна была хорошая последовательность a из n целых чисел a1, a2, ..., an, но он ее потерял.
Последовательность называется хорошей, если и только если все ее элементы — целые неотрицательные числа, не превосходящие 109.
Однако, Зейн помнит, что он играл с последовательностью, применяя к ней m операций.
Было два типа операций:
1. Найти максимальное значение среди чисел с индексами i такими, что l ≤ i ≤ r, по данным l и r.
2. Присвоить значение d элементу последовательности с индексом k, по данным k и d.
После того, как он поиграл с последовательностью, он восстановил массив до исходного состояния. Это значит, что пропали изменения в последовательности a, внесенные операциями типа 2. После этого Зейн потерял последовательность.
К счастью, Зейн помнит все операции, их порядок, а также результат всех операций типа 1, которые оказались различными. Кроме этого, Зейн знает, что среди всех хороших последовательностей, которые произвели бы те же результаты после применения этих операций в соответствующем порядке, последовательность a имела наибольшую красоту.
Красота последовательности — это побитовый OR всех элементов последовательности. Например, красота последовательности Зейна a равняется a1 OR a2 OR ... OR an.
Зейн понимает, что не всегда возможно точно восстановить потерянную последовательность по данной информации, поэтому он будет доволен получить любую хорошую последовательность b, состоящую из n целых чисел b1, b2, ..., bn такую, что:
1. она даст такой же результат при применении данных операций;
2. имеет такую же красоту, как и последовательность Зейна a.
Если такая последовательность существует, найдите ее. Иначе сообщите, что Зейн запомнил что-то неправильно.
Выходные данные
Если не существует подходящей хорошей последовательности, выведите «NO» (без кавычек) в единственной строке.
Иначе, выведите «YES» (без кавычек) на первой строке, и n целых чисел b1, b2, ..., bn (0 ≤ bi ≤ 109) на второй строке.
Если существует несколько ответов, выведите любой из них.