#include<bits/stdc++.h>
using namespace std;
long long l,n,m,xx,a[50005];
bool check(int nsb){
int s=0,t=0;
for(int i=1;i<=n;++i)
if(a[i]-a[t]<nsb)s++;else t=i;
if(s>m)return 0;
return 1;
}
int main(){
scanf("%d%d%d",&l,&n,&m);
int x=1,y=l;
for(int i=1;i<=n;++i)scanf("%d",a+i);
while(x<=y){
int mid=(x+y)/2;
if(check(mid)){
xx=mid;x=mid+1;
}
else y=mid-1;
}
printf("%d",xx);
}
/**************************************************************
Problem: 2345
User: admin
Language: C++
Result: Accepted
Time:129 ms
Memory:2468 kb
****************************************************************/