#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
****************************************************************/