#include <algorithm>
#include <iostream>
#include<stdio.h>
using namespace std;
bool cmp(int a,int b)
{
if (a<b) return true;
return false;
}
int n,m,num[50010];
int main()
{
int max,min,i,L,mid;
while(scanf("%d%d%d",&L,&n,&m)!=EOF)
{
max=L;
min=0;
for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
}
num[0]=0;
num[n+1]=L;
sort(num,num+n+1,cmp);
while(max>=min)
{
mid=(max+min)/2;
int sum=0,tem=0;
for(i=1;i<n+2;i++)
{
if(num[i]-num[tem]<mid) sum++;
else tem=i;
}
if(sum>m) max=mid-1;
else min=mid+1;
}
printf("%d\n",max);
}
return 0;
}