#include #define st first #define nd second #define pb push_back #define rep(i, a, b) for(int i = (a); i < (b); ++i) #define sci(x) int x; cin >> x; #define scvi(v, n) vector v(n); rep(i, 0, n) cin >> v[i]; using namespace std; typedef long long ll; typedef pair ii; typedef vector vi; vi best_match(vi &a, int k, int c=29) { vi b; int m = 1 << c; for(int &x : a) { if(x & m) b.push_back(x); } if(((int)b.size()) >= k) { if(c > 0) return best_match(b, k, c-1); else return b; } else { if(c > 0) return best_match(a, k, c-1); else return a; } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); sci(n); sci(k); scvi(a, n); vi b = best_match(a, k); int m = (1<<30)-1; for(int &x : b) { m &= x; } cout << m << '\n'; return 0; }