#include<iostream>
#include<cstdio>
#include<algorithm>
typedef long long ll;
using namespace std;
ll n,m,a[114514],p=0,ans=0,v[114514];
bool bo=false;
int main()
{
scanf("%lld %lld",&n,&m);
for(ll i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
sort(a+1,a+n+1);
for(ll i=1;i<=n;i++)
{
if (a[i]-p<=0)
{
continue;
}
ll k=n-i+1;
if (k>=3&&m>=1)
{
ll w=min(m,a[i]-p);
ans+=w*k;
p+=w;
m-=w;
ll cnt=0;
while(a[i]-p<=0&&i<=n)
{
i++;
cnt++;
}
if (cnt>=1)
{
ans-=cnt;
i--;
}
}
if (k<=2&&m>=1)
{
ll hp=a[i]-p,ypy=hp%2;
ll w=min(m,(hp-ypy)/2);
ans+=w*k-1+ypy;
m-=w;
v[i]+=2*w;
if (ypy&&m>=1)
{
m--;
p++;
ans+=k;
ll cnt=0;
while(a[i]-v[i]-p<=0&&i<=n)
{
i++;
cnt++;
}
if (cnt>=1)
{
ans-=cnt;
i--;
}
}
}
if (m==0)
{
if (bo==false)
{
bo=true;
for(ll j=i;j<=n;j++)
{
a[j]=a[j]-p-v[j];
}
}
if (a[i]>=1)
{
ans+=a[i]*k-1;
}
}
}
printf("%lld",ans);
return 0;
}