#include <bits/stdc++.h>
using namespace std;
int li[50010];
int L, n, k;
bool check(int mn) {
int now = 1;
int know = 0;
while (now != n) {
if (mn == 2) {
printf("/%d %d/\n", now, know);
}
int offset = 1;
while (now + offset <= n && li[now + offset] - li[now] < mn) {
offset++;
know++;
}
now += offset;
if (now > n)
return 0;
}
// printf("/%d %d/\n", mn, know);
if (know <= k)
return 1;
else
return 0;
}
int main() {
cin >> L >> n >> k;
li[1] = 0;
for (int i = 1; i <= n; i++) {
cin >> li[i + 1];
}
n += 2;
li[n] = L;
int l = 0;
int r = L;
int ans = 0;
while (l <= r) {
int mid = (l + r) >> 1;
printf("/%d/", mid);
if (check(mid)) {
l = mid + 1;
ans = max(ans, mid);
} else
r = mid - 1;
// printf("/%d %d/\n", l, r);
}
cout << ans;
}
// 0 2 4 7 8