#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int L,n,m;
int a[50005];
int cmp(const void* a,const void* b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int sum,cnt;
scanf("%d%d%d",&L,&n,&m);
a[0]=0;
a[n+1]=L;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
qsort(a,n+2,sizeof(a[0]),cmp);
int l=0,r=L;
int mid;
while(l<=r)
{
sum=0;cnt=0;
mid=(l+r)>>1;
for(int i=0;i<n+1;i++)
{
if(sum+a[i+1]-a[i]<=mid)
{
sum+=a[i+1]-a[i];
cnt++;
}
else
{
sum=0;
}
}
if(cnt<=m) l=mid+1;
else r=mid-1;
}
printf("%d\n",l);
return 0;
}
#include<string.h>
#include<stdlib.h>
int L,n,m;
int a[50005];
int cmp(const void* a,const void* b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int sum,cnt;
scanf("%d%d%d",&L,&n,&m);
a[0]=0;
a[n+1]=L;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
qsort(a,n+2,sizeof(a[0]),cmp);
int l=0,r=L;
int mid;
while(l<=r)
{
sum=0;cnt=0;
mid=(l+r)>>1;
for(int i=0;i<n+1;i++)
{
if(sum+a[i+1]-a[i]<=mid)
{
sum+=a[i+1]-a[i];
cnt++;
}
else
{
sum=0;
}
}
if(cnt<=m) l=mid+1;
else r=mid-1;
}
printf("%d\n",l);
return 0;
}