EduBrick

O. Сколько значений можно получить

3000 мс · 256 МБ · всё или ничего

Дан массив из nn чисел. Сколько различных значений можно получить как исключающее «или» какого-нибудь подмножества элементов, включая пустое? Ответ выведите по модулю 109+710^9 + 7.

Множество достижимых значений — это линейная оболочка над полем из двух элементов, где сложение и есть XOR. У неё есть базис, и если его размер равен rr, достижимых значений ровно 2r2^r: каждый элемент базиса либо берём, либо нет, и разные наборы дают разные значения.

Формат ввода

Первая строка содержит число nn (1≤n≤1051 \le n \le 10^5).

Вторая строка — nn чисел aia_i (0≤ai<2600 \le a_i < 2^{60}).

Формат вывода

Одно число — количество различных значений по модулю 109+710^9 + 7.

Примеры

ввод
3
1 2 3
вывод
4
ввод
4
0 0 0 0
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.