#include<cstdio>
#include<cmath>
using namespace std;
int l,n,m,i,d[50001]={0},f;
int charlotte (int begin,int end){
const int mid=(int)ceil((begin+end)/2.0);
if (begin==end) return mid;
int last=0,total=0;
for (int i=1;i<=n;i++)
if(l-d[i]<mid){total+=n-i+1;break;}
else if (d[i]-d[last]>=mid) last=i;
else total++;
if (total>m) return charlotte(begin,mid-1);
return charlotte(mid,end);
}
int main ()
{
freopen("2015stone.in","r",stdin);
freopen("2015stone.out","w",stdout);
scanf("%d%d%d",&l,&n,&m);
for (i=1;i<=n;i++) scanf("%d",&d[i]);
printf("%d",charlotte(1,l));
fclose(stdin);fclose(stdout);return 0;
}