## https://yukicoder.me/problems/no/1900 from collections import deque def main(): N = int(input()) A = list(map(int, input().split())) next_nodes = [[] for _ in range(N)] for i in range(N): for j in range(i + 1, N): a = A[i] b = A[j] c = a ^ b if c.bit_count() == 1: next_nodes[i].append(j) next_nodes[j].append(i) passed = [-1] * N answer = 0 for s_i in range(N): if passed[s_i] == -1: passed[s_i] = 0 p_map = [1, 0] queue = deque() queue.append(s_i) while len(queue) > 0: v = queue.popleft() for w in next_nodes[v]: if passed[w] == -1: passed[w] = 1 - passed[v] p_map[passed[w]] += 1 queue.append(w) answer += max(p_map) print(answer) if __name__ == "__main__": main()