#include<bits/stdc++.h> usingnamespacestd; int L, n, m; constint N = 500000 + 20; int a[N];
boolcheck(int mid) { int tot = 1; while (a[tot] < mid) tot++; tot--; for (int i = tot + 1; i <= n;) { int k = i + 1; while (a[k] - a[i] < mid && k <= n + 1) k++; tot += k - i - 1; i = k; if (i == n) return tot <= m; if (i > n) returnfalse; if (a[n] - a[i] < mid) returnfalse; } return tot <= m; }
intmain(void) { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin >> L >> n >> m; int l = 0, r = 0; for (int i = 1; i <= n; i++) cin >> a[i];
if((n | m) == 0) { cout << L; return0; }
n++; a[n] = L; l = 0, r = L;
while (l < r) { int mid = l + r + 1 >> 1; if (check(mid)) l = mid; else r = mid - 1; } cout << l; return0; }