// https://o...content-available-to-author-only...i.info/problem/fct017_giangseq
#include <bits/stdc++.h>
using namespace std;
#define IO(NAME) \
cin.tie(0)->sync_with_stdio(false); \
if (fopen(NAME ".inp", "r")) { \
freopen(NAME ".inp", "r", stdin); \
freopen(NAME ".out", "w", stdout); \
};
#define int long long
#define main() signed main()
#define x first
#define y second
#define pb push_back
#define mp make_pair
#define sqr(x) (x) * (x)
#define all(a) a.begin(), a.end()
typedef vector<int> vt;
typedef pair<int, int> ii;
typedef vector<ii> vii;
const int N = 2e3 + 7, inf = 1e18;
int n, k, a[N];
ii dp[N];
bool check(int mid) {
int tmp = 0;
for (int i = 1; i <= n; i++) {
tmp += mid;
dp[i] = mp(tmp - a[i], tmp + a[i]);
}
sort (dp + 1, dp + 1 + n);
vt v;
v.pb(dp[1].y);
for (int i = 2; i <= n; i++) {
if (v.back() <= dp[i].y) v.pb(dp[i].y);
else *upper_bound(all(v), dp[i].y) = dp[i].y;
}
return n - v.size() <= k;
}
main() {
IO("GIANGSEQ");
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
int l = 0, r = 2e9, mid, res;
while (l <= r) {
mid = (l + r) >> 1;
if (check(mid)) r = --mid;
else l = ++mid;
}
cout << r + 1 << "\n";
return 0;
}
Ly8gaHR0cHM6Ly9vLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5pLmluZm8vcHJvYmxlbS9mY3QwMTdfZ2lhbmdzZXEKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIElPKE5BTUUpIFwKICAgIGNpbi50aWUoMCktPnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IFwKICAgIGlmIChmb3BlbihOQU1FICIuaW5wIiwgInIiKSkgeyBcCiAgICAgICAgZnJlb3BlbihOQU1FICIuaW5wIiwgInIiLCBzdGRpbik7IFwKICAgICAgICBmcmVvcGVuKE5BTUUgIi5vdXQiLCAidyIsIHN0ZG91dCk7IFwKICAgIH07CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKI2RlZmluZSBtYWluKCkgc2lnbmVkIG1haW4oKQojZGVmaW5lIHggZmlyc3QgCiNkZWZpbmUgeSBzZWNvbmQgCiNkZWZpbmUgcGIgcHVzaF9iYWNrIAojZGVmaW5lIG1wIG1ha2VfcGFpciAKI2RlZmluZSBzcXIoeCkgKHgpICogKHgpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZ0Owp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHZlY3RvcjxpaT4gdmlpOwoKY29uc3QgaW50IE4gPSAyZTMgKyA3LCBpbmYgPSAxZTE4OwppbnQgbiwgaywgYVtOXTsKaWkgZHBbTl07Cgpib29sIGNoZWNrKGludCBtaWQpIHsKICAgIGludCB0bXAgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgdG1wICs9IG1pZDsKICAgICAgICBkcFtpXSA9IG1wKHRtcCAtIGFbaV0sIHRtcCArIGFbaV0pOwogICAgfQogICAgc29ydCAoZHAgKyAxLCBkcCArIDEgKyBuKTsKICAgIHZ0IHY7CiAgICB2LnBiKGRwWzFdLnkpOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaWYgKHYuYmFjaygpIDw9IGRwW2ldLnkpIHYucGIoZHBbaV0ueSk7CiAgICAgICAgZWxzZSAqdXBwZXJfYm91bmQoYWxsKHYpLCBkcFtpXS55KSA9IGRwW2ldLnk7CiAgICB9CiAgICByZXR1cm4gbiAtIHYuc2l6ZSgpIDw9IGs7Cn0KCm1haW4oKSB7CiAgICBJTygiR0lBTkdTRVEiKTsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgaW50IGwgPSAwLCByID0gMmU5LCBtaWQsIHJlczsKICAgIHdoaWxlIChsIDw9IHIpIHsKICAgICAgICBtaWQgPSAobCArIHIpID4+IDE7CiAgICAgICAgaWYgKGNoZWNrKG1pZCkpIHIgPSAtLW1pZDsKICAgICAgICBlbHNlIGwgPSArK21pZDsKICAgIH0KICAgIGNvdXQgPDwgciArIDEgPDwgIlxuIjsKICAgIHJldHVybiAwOwp9Cg==