from sys import setrecursionlimit setrecursionlimit(10 ** 5) MOD = 998244353 flag = [0] * 32 def slv(a, k): if len(a) <= 1 or k < 0: pass else: if ((a[0] >> k) & 1) or ((a[-1] >> k) & 1 == 0): slv(a, k - 1) else: flag[k] = 1 for i in range(1, len(a)): if (a[i] >> k) & 1: slv(a[:i], k - 1) slv(a[i:], k - 1) N = int(input()) a = list(map(int, input().split())) a.sort() slv(a, 32) print(pow(2, sum(flag), MOD))