#include <bits/stdc++.h>
using namespace std;
int l, n, k, a[100001];
bool check(int M) {
int y = k;
int pos = 0;
for (int i = 2; i <= n; i++) {
if (a[i] - pos <= M)
pos = a[i];
else {
pos += M;
--i, --y;
}
}
if (y >= 0)
return true;
else
return false;
}
int main() {
scanf("%d%d%d", &l, &n, &k);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
int L = 0, R = l + 1;
while (L + 1 < R) {
int M = (L + R) / 2;
if (check(M))
R = M;
else
L = M + 1;
}
printf("%d\n", L);
return 0;
}