??
#include<iostream>
#include<algorithm>
using namespace std;
int l,k,n,a[10000005];
bool check(int x)
{
int cnt1=0,cnt=0,k2=k;
for(int i=0;i<=n;i++)
{
if(a[i]==1) cnt=0;
if(k2<0) return false;
if(cnt==x)
{
cnt=0;
k2--;
}
if(a[i]==0) cnt++;
}
return true;
}
int find(int l,int r)
{
while(r-l>5)
{
int mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid;
}
for(int i=l;i<=r;i++)
if(check(i)) return i;
}
int main()
{
cin>>l>>n>>k;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
a[x]=1;
}
sort(a+1,a+n+1);
cout<<find(1,l);
return 0;
}