local band = bit.band local n = io.read("*n") local a = {} for i = 1, n do a[i] = io.read("*n") end local dp1, dp2 = {}, {} local lim = n * 1023 for i = 1, lim do dp1[i] = false end for i = 1, n do local src = i % 2 == 1 and dp1 or dp2 local dst = i % 2 == 1 and dp2 or dp1 for j = 1, lim do dst[j] = false end local cnt = 1 local ai = a[i] for j = 1, lim do if src[j] then if 0 < j + ai and not dst[j + ai] then cnt = cnt + 1 dst[j + ai] = true end local bb = band(j, ai) if 0 < bb and not dst[bb] then cnt = cnt + 1 dst[bb] = true end end end if 0 < ai and not dst[ai] then cnt = cnt + 1 dst[ai] = true end print(cnt) end