#include<bits/stdc++.h>
using namespace std;
int a[50050],n,m;
bool pan_duan(int mid){
int m1=0,x=0,h=1;
while(x<=n){
x=upper_bound(a+1,a+2+n,mid+a[x])-a;
m1+=x-h-1;
h=x;
}
return m1<m;
}
int main(){
int l,r;
cin>>r>>n>>m;
a[n+1]=r;
for(int i=1;i<=n;i++){
cin>>a[i];
}
l=0;
while(l<=r){
int mid=(l+r)/2;
if(pan_duan(mid)){
l=mid+1;
}
else{
r=mid-1;
}
}
cout<<r-1;
return 0;
}