파벨은 친구 예고르에게 음이 아닌 정수로 이루어진 배열을 보낸다. 배열이 예고르에게 도착하기 전에 누군가 값을 바꾸지 않았는지 확인하려고, 파벨은 배열의 체크섬인 다이제스트를 계산한다.
파벨이 직접 만든 다이제스트의 정의는 이렇다. 부분 배열마다 원소의 비트 XOR과 비트 AND를 계산하고, 두 값이 같은 부분 배열의 개수를 센다. 부분 배열은 배열에서 연속한 원소를 하나 이상 골라낸 구간이다.
예를 들어 이진수로 01, 10, 11, 11이라고 쓴 네 수, 십진수로는 1, 2, 3, 3인 배열을 생각해 보자. 이 배열에서 XOR과 AND가 같은 부분 배열은 여섯 개다. 원소가 하나뿐인 부분 배열 네 개는 XOR과 AND가 모두 그 수 자신이므로 언제나 조건을 만족한다. 첫째 원소부터 셋째 원소까지는 XOR과 AND가 모두 0이다. 둘째 원소부터 넷째 원소까지는 XOR과 AND가 모두 이진수 10, 십진수 2다.
주어진 배열의 다이제스트를 구하라.
첫째 줄에 정수 n (1≤n≤100000)이 주어진다.
둘째 줄에 음이 아닌 정수 ai (0≤ai≤231−1) n개가 십진수로, 공백으로 구분되어 주어진다.
첫째 줄에 주어진 배열의 다이제스트, 즉 비트 XOR과 비트 AND가 같은 부분 배열의 개수를 출력한다.
예제 입력은 문제에서 설명한 배열과 같다.