#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int l,n,k;
int nums[N];
bool check(int G)
{
int cnt = 0,tmp = 0;
for(int i=1; i<n; i++){
if(cnt>k) return false;
if(nums[i+1] - tmp > G){
cnt++,i--;
tmp+=G;
}
else tmp = nums[i];
}
return cnt<=k;
}
int main()
{
cin>>l>>n>>k;
for(int i=1; i<=n; i++) scanf("%d",&nums[i]);
int l=0,r=nums[n];
while(l+1<r){
int mid = l+r>>1;
if(check(mid)) r = mid;
else l = mid;
}
cout<<r;
return 0;
}