Laiko ribojimas: 1s

Atminties ribojimas: 256MB

Duomenų failas: funkcija.in

Rezultatų failas: funkcija.out

Jei norite pateikti savo sprendimą - prisijunkite.

Funkcija

Jums duota n skaičių seka a_1,a_2,...,a_n.

Tarkime, jog funkcija f(l,r)(1\\leql\\leqr\\leqn) yra visų sekos a elementų, kurių indeksas nuo l iki r bitwise OR. T.y. (f(l,r)=a_l|a_{l+1}|...|a_r).

Jūsų užduotis - surasti, kiek skirtingų reikšmių galima gauti panaudojus funkciją f su visais skirtingais l,r.

Pradiniai duomenys

Pirmoje eilutėje duotas vienas skaičius n (1\\leqn\\leq10^5) - elementų sekoje skaičius.

Antroje eilutėje yra n skaičių a_i (0\\leqa_i\\leq10^6) - i-tasis sekos elementas.

Rezultatai

Išveskite vieną skaičių - skaičių galimų skirtingų funkcijos f reikšmių duotai sekai.

Pavyzdžiai

Pradiniai duomenys Rezultatai
3
1 2 0
4