eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків

Нім

Нім - це гра для \textbf{2}-х гравців з декількома купками камінчиків. Гравці по черзі роблять ходи, забираючи один або декілька камінчиків із однієї купки. Гра завершується коли забрано останній камінчик, і гравець, який його забрав, оголошується переможцем. Враховуючи задану позицію у грі Нім, Ваше завдання полягає у знаходженні кількості виграшних у ній ходів. Позиція в Нім називається "програшною", якщо після довільного ходу першого гравця він в результаті програє, при умові, що обидва гравці дотримуються найкращої стратегії. А "виграшний хід" - це хід, після якого для другого гравця позиція стає програшною. Існує знаменита теорема, яка класифікує всі проиграшні позиції. Припустимо, у деякій позиції гри Нім задано \textbf{n} купок, які містять відповідно \textbf{k_1}, \textbf{k_2}, …, \textbf{k_n} камінчиків; у такій позиції існує всього \textbf{k_1} + \textbf{k_2} + … + \textbf{k_n} можливих ходів. Запишемо всі задані значення \textbf{k_i} у двійковій системі числення (системі з основою \textbf{2}). Позиція Нім є програшною тоді і лише тоді, коли у такому запису \textbf{k_i}, кількість одиниць у кожному розряді парна. Іншими словами, позиція програшна тоді і лише тоді, коли виключне "\textbf{АБО}" (\textbf{xor}) по всім купкам \textbf{k_i} рівне \textbf{0}. Розглянемо положення з трьох купок, кількості камінчиків у яких відповідно рівні \textbf{k_1} = \textbf{7}, \textbf{k_2} = \textbf{11}, і \textbf{k_3} = \textbf{13}. У двійковому запису ці значення мають такий вигляд: \begin{verbatim} 11110111101\end{verbatim}Видно, що у цьому запису є непарна кількість одиниць у одному із стовбчиків, відповідно ця позиція не програшна. Припустимо, що ми змінили купку \textbf{k_3} до кількості камінчиків у ній \textbf{12}. Після цього кількість одиниць у кожному двійковому розряді стала парною, відповідно така позиція Нім стала програшною. Виграшним ходом будет довільний хід, який призводить до програшної для суперника позиції, відповідно для позиції \textbf{k_1} = \textbf{7}, \textbf{k_2} = \textbf{11}, і \textbf{k_3} = \textbf{13} виграшним будет довільний хід, який видаляє третю одиницю у довільному з рядків останнього стовбчика двійкового запису чисел. Очевидно, що таких ходів існує всього три, при яких видаляєтся довільна з непарних одиниць у останньому розряді. \InputFile Вхідні дані містять декілька тестових випадків, кожен з яких починається з рядка, який містить кількість купок з камінчиками \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{1000}). У наступному рядку міститься \textbf{n} додатних чисел, \textbf{1} ≤ \textbf{k_i} ≤ \textbf{1000000000}, кількість камінчиків у відповідній купці. Рядок, який містить значення \textbf{n} = \textbf{0}, є ознакою закінчення вхідних даних і не повинен опрацьовуватись. \OutputFile Для кожного заданого тесту вивести в окремому рядку кількість виграшних для даної позиції ходів.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3
7 11 13
2
1000000000 1000000000
0
Вихідні дані #1
3
0