#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N = 1e5 + 9;
const int INF = numeric_limits<signed>::max();
int h, n, k, a[N];
bool check(int mid) {
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (a[i] - a[i - 1] > mid) {
cnt += (a[i] - a[i - 1]) / mid;
if ((a[i] - a[i - 1]) % mid == 0) cnt--;
}
}
return cnt <= k;
}
signed main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> h >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
int l = 0, r = h, mid;
while (l <= r) {
mid = (l + r) >> 1;
if (check(mid)) r = mid - 1;
else l = mid + 1;
}
cout << l << endl;
return 0;
}