#include<bits/stdc++.h>
using namespace std;
int L,n,m;
const int N=10000010;
int arr[N];
bool check(int mid){
int now=1,sum=0;
for(int i = 2;i <= n; i++){
if(arr[i]-arr[now] > mid){
sum++;
if(sum > m) return false;
int j=1;
while(arr[i]- arr[now] - j*mid > mid){
sum++;
j++;
if(sum > m) return false;
}
}else now ++;
}
if(sum <= m) return true;
else return false;
}
int main(){
cin>>L>>n>>m;
for(int i=1; i <= n ;i++)
cin>>arr[i];
int l=-1,r=L+1;
while( l + 1 < r){
int mid=(l + r) / 2;
if(check(mid)) r = mid;
else l= mid;
}
if(check(r)) cout<<r<<endl;
else cout<<l<<" ";
}