# -*- coding: utf-8 -*- def solution(i, m, dp, A, N): if not dp[m]: if i<N-1: solution(i+1, m, dp, A, N) #dp[m] = True if not dp[m^A[i]]: if i<N-1: solution(i+1, m^A[i], dp, A, N) #dp[m^A[i]] = True dp[m] = True dp[m^A[i]] = True if __name__ == '__main__': N = int(input()) A = list(map(int, input().split())) # dp = [False] * 40000 dp = [] for i in range(40000): dp.append(False) solution(0, 0, dp, A, N) pattern = 0 for b in dp: if b: pattern += 1 print(pattern)