Олимпиадный тренинг

Задача . D. Восстановление таблицы


Недавно Поликарп изучил операцию «побитового И» (она же — операция «AND») целых неотрицательных чисел. Теперь он хочет продемонстрировать учителю информатики в школе свое виртуозное владение изученной операцией.

Для этого Поликарп пришел в школу пораньше и записал на доске последовательность целых неотрицательных чисел a1, a2, ..., an. А также квадратную матрицу b размера n × n. Элемент матрицы b, стоящий в i-той строке в j-том столбце (обозначим его bij), равен:

  • «побитовому И» чисел ai и aj (то есть bij = ai & aj), если i ≠ j;
  • -1, если i = j.

Выписав матрицу b, Поликарп очень обрадовался и стер с доски последовательность a. Вот незадача — без этой последовательности учитель не сможет проверить правильно ли Поликарп произвел вычисления. Поликарпу срочно надо восстановить стертую последовательность чисел, иначе он не докажет, что умеет правильно считать.

Помогите Поликарпу, по матрице b восстановите последовательность чисел a1, a2, ..., an, которую он стер с доски. Поликарп не любит большие числа, поэтому каждое число в восстановленной последовательности не должно превышать 109.

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

В первой строке записано единственное целое число n (1 ≤ n ≤ 100) — размер квадратной матрицы b. В следующих n строках записана матрица b. В i-той из этих строк записаны n целых чисел, разделенных пробелами: j-тое число обозначает элемент матрицы bij. Гарантируется, что для всех i (1 ≤ i ≤ n) выполняется bii = -1. Гарантируется, что для всех i, j (1 ≤ i, j ≤ ni ≠ j) выполняется 0 ≤ bij ≤ 109, bij = bji.

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

Выведите n целых неотрицательных чисел a1, a2, ..., an (0 ≤ ai ≤ 109) — последовательность, которую стер Поликарп. Выведенные числа разделяйте пробельными символами.

Гарантируется, что существует последовательность a, удовлетворяющая условиям задачи. Если существует несколько таких последовательностей, разрешается вывести любую.

Примечание

Если вы не знаете, что такое операция «побитовое И», можете прочитать: http://ru.wikipedia.org/wiki/Битовые_операции.


Примеры
Входные данныеВыходные данные
1 1
-1
0
2 3
-1 18 0
18 -1 0
0 0 -1
18 18 0
3 4
-1 128 128 128
128 -1 148 160
128 148 -1 128
128 160 128 -1
128 180 148 160

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя