XOR
Команда відомого криптоаналітика професора Ксора працює над зломом нової Однорідної Зведеної Шифруючої мережі. Після довгих досліджень проблема злома мережі звелася до наступної задачі.
Розглянемо двійкове представлення цілих чисел a[1]
, a[2]
, ..., a[n]
, додавши до менших з них спереду нулі таким чином, щоб довжина (кількість цифр) усіх чисел стала однаковою. Після цього переставимо біти в числах, отримавши нові числа b[1]
, b[2]
, ..., b[n]
такі, що b[1]
xor b[2]
xor ... xor b[n]
= 0. Тут через xor позначено операцію побітового виключного або.
Вам, як початківцю в команді професора, слід вирішити цю задачу.
Вхідні дані
Перший рядок містить значення n (2 ≤ n ≤ 50). У другому рядку задані числа a[1]
, a[2]
, ..., a[n]
(1 ≤ a[i]
≤ 10^18
).
Вихідні дані
Вивести b[1]
, b[2]
, ..., b[n]
. Якщо розв'язку не існує, то вивести "impossible".
Зауваження
У першому прикладі a[1]
= 7 = 0111[2]
, a[2]
= 10 = 1010[2]
, a[3]
= 11 = 1011[2]
. Якщо переставимо біти та отримаємо b[1]
= 7 = 0111[2]
, b[2]
= 12 = 1100[2]
, b[3]
= 11 = 1011[2]
, то будемо мати b[1]
xor b[2]
xor b[3]
= 0.