
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 2000005;
int tag[maxn],summ[maxn];
int len[maxn];
int n,k;
void push_up(int p){
	summ[p] = summ[p<<1] + summ[p<<1|1];
}
void push_down(int p,int l,int r){
	if(tag[p] == 0) return;
	int x = tag[p];
	tag[p] = 0; int mid = (l+r)>>1;
	tag[p<<1] += x,tag[p<<1|1] += x;
	summ[p<<1] += x * (mid - l + 1);
	summ[p<<1|1] += x * (r - mid);
}
void build(int l,int r,int p)
{
	tag[p] = 0;
	if(l == r){
		if(l == 1) summ[p] = 1;
		else summ[p] = 0;
		return;
	}
	int mid = (l+r)>>1;
	build(l,mid,p<<1);
	build(mid+1,r,p<<1|1);
	push_up(p);
}
void gai(int l,int r,int p,int ll,int rr,int z){
	if(ll > rr) return;
	if(l != r) push_down(p,l,r);
	if(ll <= l && r <= rr){
		summ[p] += (r - l + 1) * z;
		tag[p] += z;
		if(l != r) push_down(p,l,r);
		return;
	}
	int mid = (l+r)>>1;
	if(ll <= mid) gai(l,mid,p<<1,ll,rr,z);
	if(rr > mid) gai(mid+1,r,p<<1|1,ll,rr,z);
	push_up(p);
}
int cha(int l,int r,int p,int z){
//	printf("%lld %lld %lld\n",l,r,summ[p]);
	if(l == r) return l;
	else push_down(p,l,r);
	int mid = (l+r)>>1;
	if(z <= summ[p<<1]){
		return cha(l,mid,p<<1,z);//第z小
	}
	z -= summ[p<<1];
	return cha(mid+1,r,p<<1|1,z);
}
void chong(int l,int r,int p)
{
	if(l == r) return;
	push_down(p,l,r);
	int mid = (l+r)>>1;
	chong(l,mid,p<<1);
	chong(mid+1,r,p<<1|1);
}
signed main()
{
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=n;++i) scanf("%lld",&len[i]);
	sort(len + 1,len + n + 1);
	reverse(len + 1,len + n + 1);
	build(1,300000,1);
	int ans = 1e9;
//	for(int i=1;i<=n;++i) printf("%lld ",len[i]);
//	return 0;
	for(int i=1;i<=n+1;++i){
	//	printf("\n\n");
		if(summ[1] >= k)
		{
			int ak = cha(1,300000,1,k);
			ans = min(ans,ak);
			//printf("%lld\n",ak);
		}
		if(n == i - 1) break;
	//	chong(1,300000,1);
		int akk = cha(1,300000,1,1);
		gai(1,300000,1,akk,akk,-1);//直接-1
	//	printf("%lld\n",akk);
//		return 0;
		int x = len[i];
		x --;
		akk += 2;//在这里减
		if(x % 2 == 0){
			gai(1,300000,1,akk,akk + x/2 - 1,2);
		}
		else{
		//	printf("%lld\n",akk);
			gai(1,300000,1,akk,akk + x/2-1,1);//3
			gai(1,300000,1,akk,akk + x/2,1);//3 4
		}
	}
	if(ans != 1e9)
	printf("%lld\n",ans-1);
	else printf("-1");
}