#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
#define ii pair<int, int>
#define fi first
#define se second
using namespace std;
const int maxn = 5e5;
const ll INF = 1e18;
int n, k, lmax[maxn + 10], rmax[maxn + 10], lprovide[maxn + 10], rprovide[maxn + 10];
ll h[maxn + 10], pre[maxn + 10];
vector<int> stk;
ii vl[maxn + 10];
void build_lprovide(ll x)
{
int j = 1;
for (int i = 1; i <= n; i++)
{
while (pre[i - 1] - pre[j - 1] > x)
j++;
lprovide[i] = max(j, lmax[i]);
}
}
void build_rprovide(ll x)
{
int j = n;
for (int i = n; i >= 1; i--)
{
while (pre[j - 1] - pre[i - 1] > x)
j--;
rprovide[i] = min(j, rmax[i]);
}
}
bool check(ll x)
{
for (int i = 1; i <= n; i++)
vl[i] = {0, 0};
build_lprovide(x);
build_rprovide(x);
for (int i = 1; i <= n; i++)
vl[lprovide[i]] = max(vl[lprovide[i]], {rprovide[i], -i});
int rt = 0;
int j = 1;
ii mx = {0, n};
int cnt = 0;
// for (int i = 1; i <= n; i++)
// cout << i << ' ' << lprovide[i] << ' ' << rprovide[i], el;
while (rt < n)
{
ii tmp = mx;
for (; j <= rt; j++)
mx = max(mx, vl[j]);
// if (-pr.se - (rt + 1) <= (rt + 1) + tmp.se)
mx = max(mx, vl[rt + 1]);
// cout << mx.fi << ' ' << mx.se, el;
if (mx.fi == rt)
return 0;
rt = mx.fi;
cnt++;
}
return cnt <= k;
}
ll bs(ll l, ll r)
{
ll ans = -1;
while (l <= r)
{
ll m = l + r >> 1;
if (check(m))
{
ans = m;
r = m - 1;
}
else
l = m + 1;
}
return ans;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("FIRE.INP", "r"))
{
freopen("FIRE.INP", "r", stdin);
freopen("FIRE.OUT", "w", stdout);
}
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> h[i];
for (int i = 1; i < n; i++)
{
cin >> pre[i];
pre[i] += pre[i - 1];
}
h[0] = h[n + 1] = INF;
stk.push_back(0);
for (int i = 1; i <= n; i++)
{
while (h[stk.back()] < h[i])
stk.pop_back();
lmax[i] = max(1, stk.back());
stk.push_back(i);
}
stk.clear();
stk.push_back(n + 1);
for (int i = n; i >= 1; i--)
{
while (h[stk.back()] < h[i])
stk.pop_back();
rmax[i] = min(n, stk.back());
stk.push_back(i);
}
// cout << check(6);
// for (int i = 1; i <= 10; i++)
// cout << i << ' ' << check(i), el;
cout << bs(0, INF);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4biA9IDVlNTsKY29uc3QgbGwgSU5GID0gMWUxODsKCmludCBuLCBrLCBsbWF4W21heG4gKyAxMF0sIHJtYXhbbWF4biArIDEwXSwgbHByb3ZpZGVbbWF4biArIDEwXSwgcnByb3ZpZGVbbWF4biArIDEwXTsKbGwgaFttYXhuICsgMTBdLCBwcmVbbWF4biArIDEwXTsKdmVjdG9yPGludD4gc3RrOwppaSB2bFttYXhuICsgMTBdOwoKdm9pZCBidWlsZF9scHJvdmlkZShsbCB4KQp7CiAgICBpbnQgaiA9IDE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgd2hpbGUgKHByZVtpIC0gMV0gLSBwcmVbaiAtIDFdID4geCkKICAgICAgICAgICAgaisrOwogICAgICAgIGxwcm92aWRlW2ldID0gbWF4KGosIGxtYXhbaV0pOwogICAgfQp9CnZvaWQgYnVpbGRfcnByb3ZpZGUobGwgeCkKewogICAgaW50IGogPSBuOwogICAgZm9yIChpbnQgaSA9IG47IGkgPj0gMTsgaS0tKQogICAgewogICAgICAgIHdoaWxlIChwcmVbaiAtIDFdIC0gcHJlW2kgLSAxXSA+IHgpCiAgICAgICAgICAgIGotLTsKICAgICAgICBycHJvdmlkZVtpXSA9IG1pbihqLCBybWF4W2ldKTsKICAgIH0KfQpib29sIGNoZWNrKGxsIHgpCnsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICB2bFtpXSA9IHswLCAwfTsKICAgIGJ1aWxkX2xwcm92aWRlKHgpOwogICAgYnVpbGRfcnByb3ZpZGUoeCk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgdmxbbHByb3ZpZGVbaV1dID0gbWF4KHZsW2xwcm92aWRlW2ldXSwge3Jwcm92aWRlW2ldLCAtaX0pOwogICAgaW50IHJ0ID0gMDsKICAgIGludCBqID0gMTsKICAgIGlpIG14ID0gezAsIG59OwogICAgaW50IGNudCA9IDA7CgovLyAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCi8vICAgICAgICBjb3V0IDw8IGkgPDwgJyAnIDw8IGxwcm92aWRlW2ldIDw8ICcgJyA8PCBycHJvdmlkZVtpXSwgZWw7CgogICAgd2hpbGUgKHJ0IDwgbikKICAgIHsKICAgICAgICBpaSB0bXAgPSBteDsKICAgICAgICBmb3IgKDsgaiA8PSBydDsgaisrKQogICAgICAgICAgICBteCA9IG1heChteCwgdmxbal0pOwovLyAgICAgICAgICAgIGlmICgtcHIuc2UgLSAocnQgKyAxKSA8PSAocnQgKyAxKSArIHRtcC5zZSkKICAgICAgICBteCA9IG1heChteCwgdmxbcnQgKyAxXSk7Ci8vICAgICAgICBjb3V0IDw8IG14LmZpIDw8ICcgJyA8PCBteC5zZSwgZWw7CiAgICAgICAgaWYgKG14LmZpID09IHJ0KQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBydCA9IG14LmZpOwogICAgICAgIGNudCsrOwogICAgfQogICAgcmV0dXJuIGNudCA8PSBrOwp9CmxsIGJzKGxsIGwsIGxsIHIpCnsKICAgIGxsIGFucyA9IC0xOwogICAgd2hpbGUgKGwgPD0gcikKICAgIHsKICAgICAgICBsbCBtID0gbCArIHIgPj4gMTsKICAgICAgICBpZiAoY2hlY2sobSkpCiAgICAgICAgewogICAgICAgICAgICBhbnMgPSBtOwogICAgICAgICAgICByID0gbSAtIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgbCA9IG0gKyAxOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiRklSRS5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oIkZJUkUuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigiRklSRS5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IG4gPj4gazsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBjaW4gPj4gaFtpXTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBwcmVbaV07CiAgICAgICAgcHJlW2ldICs9IHByZVtpIC0gMV07CiAgICB9CiAgICBoWzBdID0gaFtuICsgMV0gPSBJTkY7CiAgICBzdGsucHVzaF9iYWNrKDApOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIHdoaWxlIChoW3N0ay5iYWNrKCldIDwgaFtpXSkKICAgICAgICAgICAgc3RrLnBvcF9iYWNrKCk7CiAgICAgICAgbG1heFtpXSA9IG1heCgxLCBzdGsuYmFjaygpKTsKICAgICAgICBzdGsucHVzaF9iYWNrKGkpOwogICAgfQogICAgc3RrLmNsZWFyKCk7CiAgICBzdGsucHVzaF9iYWNrKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkKICAgIHsKICAgICAgICB3aGlsZSAoaFtzdGsuYmFjaygpXSA8IGhbaV0pCiAgICAgICAgICAgIHN0ay5wb3BfYmFjaygpOwogICAgICAgIHJtYXhbaV0gPSBtaW4obiwgc3RrLmJhY2soKSk7CiAgICAgICAgc3RrLnB1c2hfYmFjayhpKTsKICAgIH0KLy8gICAgY291dCA8PCBjaGVjayg2KTsKLy8gICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTA7IGkrKykKLy8gICAgICAgIGNvdXQgPDwgaSA8PCAnICcgPDwgY2hlY2soaSksIGVsOwogICAgY291dCA8PCBicygwLCBJTkYpOwp9Cg==