#include int main() { int N; std::vector v; long temp; long mask, mask1, mask2; long count; long ans; bool b; std::cin >> N; for(int i = 0; i < N; ++i) { std::cin >> temp; v.push_back(temp); } count = 0; for(int i = 0; i < 64; ++i) { for(int j = i+1; j < 64; ++j) { mask = (1ULL << i) | (1ULL << j); mask1 = (1ULL << i); mask2 = (1ULL << j); b = true; for(int k = 0; k < N; ++k) { if( (v[k] & mask) == mask1 || (v[k] & mask) == mask2 ) { b = false; break; } } if( b ) { count++; } } } ans = 1; for(int i = 1; i < 64 - (int)sqrt(2*count); ++i) { ans *= 2; } std::cout << ans << std::endl; return 0; }