#include #include using namespace std; int N, K; //int* musicians; int days[30]; /* void resetdays() { for (int j = 0; j < 30; ++j) { days[j] = 0; } } */ vector getMusiciansWithMask(int mask, vector &musicians) { vector result; for (int m : musicians) { if (m & mask) { result.push_back(m); } } return result; } int getAvailableMusicianCount(int mask, vector &musicians) { int count = 0; for (int m : musicians) { if (m & mask) { count++; } } return count; } int main() { scanf("%d %d", &N, &K); vector musicians(N); for (int i = 0; i < N; ++i) { scanf("%d", &musicians[i]); } int result = 0; int mask = 1 << 30; int i; for (i = 0; i <= 30; i++) { if (getAvailableMusicianCount(mask, musicians) >= K) { musicians = getMusiciansWithMask(mask, musicians); result = result | mask; } mask = mask >> 1; } cout << result << endl; return 0; }