# -*- 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

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)