주어진 배열의 부분수열에 대해 비트 AND를 취할 때 나올 수 있는 서로 다른 값의 개수를 구한다. 크기가 0인 부분수열의 AND는 0이다.
NNN개의 정수로 이루어진 배열 AAA가 주어진다.
AAA의 부분 배열마다 그 원소를 모두 바이너리 &한 값을 구한다. 이렇게 모은 값 중에 서로 다른 수가 몇 개인지 세는 프로그램을 작성하시오.
부분 배열은 AAA의 일부분을 뜻하며, 원소가 연속되어 있을 필요는 없다. 크기가 0인 부분 배열을 &한 값은 0이다.
첫째 줄에 NNN이 주어진다. (1≤N≤1000001 \le N \le 1000001≤N≤100000)
둘째 줄에 배열 AAA의 원소가 공백으로 구분되어 주어진다. 각 원소는 10610^6106보다 작거나 같은 음이 아닌 정수이다.
첫째 줄에 &한 결과로 나올 수 있는 서로 다른 수의 개수를 출력한다.