#include <bits/stdc++.h>
using namespace std;
long long num[1000010];
int cnt[10 * 1000010];
int main() {
  cin.sync_with_stdio(false);
  int n, ans;
  long long m, sum, mmax;
  while (cin >> n >> m) {
    sum = 0;
    mmax = 0;
    memset(cnt, 0, sizeof(cnt));
    for (int i = 0; i < n; i++) {
      cin >> num[i];
      sum += num[i];
      cnt[num[i]]++;
      mmax = max(mmax, num[i]);
    }
    if (sum < m) {
      cout << -1 << endl;
    } else {
      ans = 0;
      int flag = 1;
      for (int i = mmax; i > 0; i--) {
        ans += cnt[i];
        if (i * 2 <= mmax) {
          ans -= cnt[i << 1];
        }
        if (i * 2 - 1 <= mmax && i != 1) {
          ans -= cnt[(i << 1) - 1];
        }
        if (ans >= m) {
          cout << i << endl;
          flag = 0;
          break;
        }
        cnt[i >> 1] += cnt[i];
        cnt[(i + 1) >> 1] += cnt[i];
      }
      if (flag) {
        cout << 1 << endl;
      }
    }
  }
  return 0;
}
