#include #include #include using namespace std; vector arr; int sort_bit = 30; bool func(int a, int b){ return (a & (1 << sort_bit)) > (b & (1 << sort_bit)); } int main(){ int N, K; cin >> N >> K; arr.resize(N); for(int i = 0; i < N; i++){ cin >> arr[i]; } for(int i = 30; i >= 0; --i) { if(arr.size() < K) break; sort_bit = i; sort(arr.begin(), arr.end(), func); int counter = 0; for(int x = 0; x < arr.size(); ++x){ if((arr[x] & (1 << sort_bit)) != 0){ counter++; } } if(counter >= K){ arr.resize(counter); } } if(arr.size() == 0){ cout << 0; return 0; } int rez = arr[0]; for(int i = 1; i < K; ++i){ rez &= arr[i]; } cout << rez; return 0; }