#include #define MAX 201000 int main() { int count, k; scanf("%d%d", &count, &k); int *nums = new int[count]; int *nums2 = new int[count]; int count2; for(int i = 0; i < count; i++) { scanf("%d", &nums[i]); } for(int maxbit = 30; maxbit >= 0; maxbit--) { count2 = 0; int mask = 1 << maxbit; for(int i = 0; i < count; i++) { if((nums[i] & mask) > 0) nums2[count2++] = nums[i]; } if(count2 >= k) { int *h = nums; nums = nums2; nums2 = h; int a = count; count = count2; count2 = a; } if(count == k) break; } int result = ~0; for(int i = 0; i < count; i++) result &= nums[i]; printf("%d", result); delete[] nums; delete[] nums2; return 0; }