#pragma GCC optimize("O3") #include using namespace std; #define PB push_back constexpr int kN = int(5E3 + 10); constexpr int kC = 1 << 10; int a[kN]; vector dp[kN]; int main() { int n; scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d", &a[i]); dp[0].PB(0); for (int i = 1; i <= n; i++) { for (int j : dp[i - 1]) dp[i].PB(j + a[i]); for (int j : dp[i - 1]) dp[i].PB(j & a[i]); sort(dp[i].begin(), dp[i].end()); dp[i].resize(unique(dp[i].begin(), dp[i].end()) - dp[i].begin()); } printf("%d\n", int(dp[n].size())); }