#include <bits/stdc++.h>
using namespace std;
const long long int inf = 1e18;
long long int exist[10000010];
long long int acum[10000010];
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  long long int n, k, maxi = 0, aux;
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> aux;
    exist[aux]++;
    maxi = max(aux, maxi);
    acum[aux]++;
  }
  for (int i = maxi; i >= 1; i--) {
    acum[i] += acum[i + 1];
    if (acum[i] >= k) {
      cout << i << "\n";
      return 0;
    } else if (exist[i]) {
      long long int a = i / 2, b = 0;
      b = (i & 1) ? (a + 1) : a;
      exist[a] += exist[i];
      exist[b] += exist[i];
      acum[a] += exist[i];
    }
  }
  cout << -1 << "\n";
  return 0;
}
