#include<stdio.h>
int d,n,m,a[60000];
int l,r,mid,ans;
int judge(int x)
{
int num=0,now=0;
for(int i=1;i<=n+1;i++)
{
if(a[i]-a[now]<x)
num++;
else
now=i;
}
if(num>m)
return 0;
else
return 1;
}
int main()
{
l=1;
scanf("%d%d%d",&d,&n,&m);
r=d;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("qwq");
a[n+1]=d;
while(l<=r)
{
mid=(l+d)/2;
if(judge(mid))
{
ans=mid;
l=mid+1;
}
else
r=mid-1;
}
printf("%d",ans);
return 0;
}