#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
using ll = long long;
using ld = long double;
#define all(x) x.begin(),x.end()
#define v(x) vector<x>
#define nl '\n'
#define fxd(x) fixed << setprecision(x)
template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n, k ; cin >> n >> k;
v(int) stalls(n);
for (int i = 0; i < n; i++)
{
cin >> stalls[i];
}
ll l = 0, r = stalls[n-1] , mid , pos = -1;
while (l <= r)
{
mid = (l+r) /2;
int cows = k-1 , CurrentDistans = 0;
for (int i = 1; i < n; i++)
{
CurrentDistans += stalls[i] - stalls[i-1];
if(cows == 0)
{
break;
}
else if (CurrentDistans >= mid)
{
cows--;
CurrentDistans = 0;
}
}
if(cows <= 0)
{
l = mid+1;
pos = mid;
}
else
{
r = mid-1;
}
}
cout << pos;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIGxkID0gbG9uZyBkb3VibGU7CgojZGVmaW5lIGFsbCh4KSAgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSB2KHgpIHZlY3Rvcjx4PgojZGVmaW5lIG5sICdcbicKI2RlZmluZSBmeGQoeCkgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKHgpCnRlbXBsYXRlPGNsYXNzIHQ+IHVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZTx0LCBudWxsX3R5cGUsIGxlc3M8dD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+Owp0ZW1wbGF0ZTxjbGFzcyB0PiB1c2luZyBvcmRlcmVkX211bHRpc2V0ID0gdHJlZTx0LCBudWxsX3R5cGUsIGxlc3NfZXF1YWw8dD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+OwoKCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUobnVsbHB0cik7IGNvdXQudGllKG51bGxwdHIpOwogICAgaW50IG4sIGsgOyBjaW4gPj4gbiA+PiBrOwogICAgdihpbnQpIHN0YWxscyhuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBzdGFsbHNbaV07CiAgICB9CiAgICBsbCBsID0gMCwgciA9IHN0YWxsc1tuLTFdICwgbWlkICwgcG9zID0gLTE7CiAgICB3aGlsZSAobCA8PSByKQogICAgewogICAgICAgIG1pZCA9IChsK3IpIC8yOwogICAgICAgIGludCBjb3dzID0gay0xICwgQ3VycmVudERpc3RhbnMgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgQ3VycmVudERpc3RhbnMgKz0gc3RhbGxzW2ldIC0gc3RhbGxzW2ktMV07IAogICAgICAgICAgICBpZihjb3dzID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKEN1cnJlbnREaXN0YW5zID49IG1pZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY293cy0tOwogICAgICAgICAgICAgICAgQ3VycmVudERpc3RhbnMgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKGNvd3MgPD0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGwgPSBtaWQrMTsKICAgICAgICAgICAgcG9zID0gbWlkOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICByID0gbWlkLTE7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBwb3M7Cn0=