Сложение без переносов

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Операция побитового <<или>> для набора целых положительных чисел, записанных в двоичной системе счисления, устроена следующим образом. Результатом её применения является число, в двоичной записи которого единица устанавливается в тех разрядах, в которых содержится единица хотя бы у одного числа из набора.

В редких случаях побитовое <<или>> можно использовать для сложения целых положительных чисел, записанных в двоичной системе счисления. Сумма набора чисел равна их побитовому <<или>>, если для каждого разряда имеется не более одного числа из этого набора, у которого в этом разряде находится единица. Такие наборы чисел назовём красивыми.

Задан набор целых положительных чисел a_1,a_2,,a_na\_1, a\_2, \ldots, a\_n. Необходимо построить красивый набор целых положительных чисел b_1,b_2,,b_nb\_1, b\_2, \ldots, b\_n, чтобы для всех ii от 11 до nn выполнялось условие b_ia_ib\_i \ge a\_i, а сумма b_1+b_2++b_nb\_1+b\_2+\ldots+b\_n была минимальна.

Требуется написать программу, которая по двоичной записи чисел a_1,a_2,,a_na\_1, a\_2, \ldots, a\_n определяет двоичную запись минимального значения суммы искомого красивого набора b_1,b_2,,b_nb\_1, b\_2, \ldots, b\_n.

입력

В первой строке записано целое число nn --- количество чисел в наборе (2n300,0002 \leq n \leq 300\\,000).

Следующие nn строк содержат двоичную запись целых положительных чисел a_ia\_i, по одному в строке. Числа не содержат ведущих нулей, и суммарная длина их двоичных записей не превосходит~300,000300\\,000.

출력

Требуется вывести двоичную запись минимальной суммы искомого красивого набора b_1,b_2,,b_nb\_1, b\_2, \ldots, b\_n. Ответ необходимо вывести без ведущих нулей.