На Кипре стоит довольно жаркая погода. Поэтому Теофанис увидел в этом возможность создать компанию по производству мороженого.
Он хранит мороженое в безопасности от других производителей мороженого, запирая его в больших складских помещениях. Однако он забыл пароль. К счастью, у замка есть специальная функция для забывчивых людей!
Дана таблица \(M\) с \(n\) строками и \(n\) столбцами неотрицательных целых чисел, и, чтобы открыть замок, вам нужно найти массив \(a\) из \(n\) элементов такой, что:
- \(0 \le a_i < 2^{30}\), и
- \(M_{i,j} = a_i | a_j\) для всех \(i \neq j\), где \(|\) обозначает операцию побитового ИЛИ.
Замок может иногда выдавать таблицы, для которых нет решения. В этом случае мороженое останется замороженным до конца времен.
Сможете ли вы найти массив, чтобы открыть замок?
Выходные данные
Для каждого набора входных данных, если существует решение, выведите в отдельных строках YES и искомый массив, в противном случае выведите NO.
Если существует несколько решений, выведите любое из них.
Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 1 0 4 0 3 3 5 3 0 3 7 3 3 0 7 5 7 7 0 5 0 7 7 5 5 7 0 3 2 6 7 3 0 3 7 5 2 3 0 4 5 6 7 4 0 3 0 0 1 0 0 0 1 0 0
|
YES
7
YES
1 3 2 5
YES
5 2 3 0 4
NO
|