#include<bits/stdc++.h>
#include<stdlib.h>
using namespace std;
#define ll long long
ll n,k,l,a[100009],q[240000],shang=0,ans=0,cnt=0,x,y;
bool cmp(ll aa,ll bb)
{
return aa>bb;
}
void dfs(ll h)
{
ll an=0;
for(int i=1;i<=h;i++)
if(a[i]<h)if(h-a[i]<=k)an+=(h-a[i]);else return;
if(an<=l)ans=max(ans,h),x=ans;
else y=h-1;
return;
}
void fen()
{
while(x!=y)dfs((x+y)/2+1),dfs((x+y)/2);
}
int main()
{
cin>>n>>k>>l;
x=0,y=n;
l*=k;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1,cmp);
fen();
cout<<ans<<endl;
}