부분 배열의 & 값 개수

주어진 배열의 부분수열에 대해 비트 AND를 취할 때 나올 수 있는 서로 다른 값의 개수를 구한다. 크기가 0인 부분수열의 AND는 0이다.

보통7비트 연산동적 계획법해시맵수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

NN개의 정수로 이루어진 배열 AA가 주어진다.

AA의 부분 배열마다 그 원소를 모두 바이너리 &한 값을 구한다. 이렇게 모은 값 중에 서로 다른 수가 몇 개인지 세는 프로그램을 작성하시오.

부분 배열은 AA의 일부분을 뜻하며, 원소가 연속되어 있을 필요는 없다. 크기가 0인 부분 배열을 &한 값은 0이다.

입력

첫째 줄에 NN이 주어진다. (1N1000001 \le N \le 100000)

둘째 줄에 배열 AA의 원소가 공백으로 구분되어 주어진다. 각 원소는 10610^6보다 작거나 같은 음이 아닌 정수이다.

출력

첫째 줄에 &한 결과로 나올 수 있는 서로 다른 수의 개수를 출력한다.