#include <bits/stdc++.h>
using namespace std;
int a[10000005], cha[10000005];
int ll,n,k,maxh;
bool judge(int x) {
int num = k;
for(int i = 1; i <= n+1; i++) {
if(num < 0) return 0;
if(cha[i] <= x) continue;
int coun = cha[i]/x;
if(cha[i] % x == 0) num -= coun+1;
else num -= coun;
//num -= coun;
}
return 1;
}
int main() {
scanf("%d%d%d", &ll, &n, &k);
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
if(i == 1) cha[i] = a[i];
else cha[i] = a[i]-a[i-1];
if(cha[i] > maxh) maxh = cha[i];
}
cha[n+1] = ll-a[n];
int l = 1, r = maxh, mid = (l+r)/2;
while(l < r) {
bool flag = judge(mid);
if(flag) {
r = mid;mid = (l+r)/2;
}
else {
l = mid+1; mid = (l+r)/2;
}
}
printf("%d", l);
return 0;
}