Чемпіонат
Бесі та її подруги беруть участь у чемпіонаті. Загалом є n команд, кожна з яких має унікальний ID в діапазоні від 1 до 2^30
- 1. Чемпіонат проводиться за системою вибування: після кожної гри ФД вирішує, яка команда вибуває, і вона більше не бере участі в турнірі. Турнір завершується, коли залишається лише одна команда.
ФД помітив цікаву особливість у підрахунку очок: у будь-якій грі загальний рахунок двох команд дорівнює побітовому виключному АБО (XOR) їхніх ID. Наприклад, якщо грають команди з ID 12 і 20, то в цій грі буде набрано 24 очки, оскільки 01100 XOR 10100 = 11000.
ФД вважає, що чим більше очок набрано в грі, тим вона цікавіша. Тому він хоче обрати таку послідовність ігор, щоб максимізувати загальну кількість набраних очок. Допоможіть ФД організувати такі матчі.
Вхідні дані
Перший рядок містить одне ціле число n (1 ≤ n ≤ 2000). Наступні n рядків містять n ID команд.
Вихідні дані
Виведіть максимально можливу кількість набраних очок.
Приклад
Один зі способів набрати 37 очок: спочатку грають 3 і 9, де перемагає 9. У турнірі залишаються 6, 9, 10. Потім грають 6 і 9, де перемагає 6. Залишаються 6 і 10. Нарешті, грають 6 і 10, де перемагає 10. Загальна кількість очок: (3 XOR 9) + (6 XOR 9) + (6 XOR 10) = 10 + 15 + 12 = 37.
Примітка
Побітовий XOR, часто позначається як ^, це операція, яка виконується окремо над кожною позицією двійкових представлень двох чисел. 1 у позиції виходить лише тоді, коли в цій позиції в різних числах знаходяться різні значення (1 і 0 або 0 і 1). Наприклад, 10100 (десяткове 20) XOR 01100 (десяткове 12) = 11000 (десяткове 24).