#include <bits/stdc++.h>
#define fast_io \
ios_base::sync_with_stdio(false); \
cin.tie(NULL)
#define clr(a, h) memset(a, (h), sizeof(a))
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define sz(x) (int)x.size()
#define pb push_back
#define pf push_front
#define ps insert
#define ll long long
#define ull unsigned long long
#define ld long double
#define PI acos(-1)
#define F first
#define S second
#define executeTime cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#define print(a) for (auto x : a) cout << x << " "; cout << "\n"
using namespace std;
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<ll> vll;
const int MOD = 1000000000 + 7;
const int N = 100000 + 10;
const int oo = 1e9;
ll a[N];
ll n, k;
bool ok(ll cur) {
ll sum = 0ll, ans = 1ll;
for(int i = 0; i < n; i++) {
if(a[i] > cur) return 0;
sum += a[i];
if(sum > cur) {
ans += 1;
sum = a[i];
}
}
if(ans <= k) return 1;
return 0;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
cin >> k;
ll low = 0, high = 1e14;
while(high - low > 1) {
ll mid = (low + high) >> 1;
if(ok(mid)) high = mid;
else low = mid;
}
cout << high << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmFzdF9pbyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IFwKICAgIGNpbi50aWUoTlVMTCkKI2RlZmluZSBjbHIoYSwgaCkgbWVtc2V0KGEsIChoKSwgc2l6ZW9mKGEpKQojZGVmaW5lIGFsbChhKSAoYSkuYmVnaW4oKSwgKGEpLmVuZCgpCiNkZWZpbmUgcmFsbChhKSAoYSkucmJlZ2luKCksIChhKS5yZW5kKCkKI2RlZmluZSBzeih4KSAoaW50KXguc2l6ZSgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGYgcHVzaF9mcm9udAojZGVmaW5lIHBzIGluc2VydAojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIFBJIGFjb3MoLTEpCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgZXhlY3V0ZVRpbWUgY2VyciA8PCAiVGltZSBlbGFwc2VkOiAiIDw8IDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAiIHMuXG4iOwojZGVmaW5lIHByaW50KGEpIGZvciAoYXV0byB4IDogYSkgY291dCA8PCB4IDw8ICIgIjsgY291dCA8PCAiXG4iCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8aWk+IHZpaTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsbDsKCmNvbnN0IGludCBNT0QgPSAxMDAwMDAwMDAwICsgNzsKY29uc3QgaW50IE4gPSAxMDAwMDAgKyAxMDsKY29uc3QgaW50IG9vID0gMWU5OwoKbGwgYVtOXTsKbGwgbiwgazsKCmJvb2wgb2sobGwgY3VyKSB7CiAgICBsbCBzdW0gPSAwbGwsIGFucyA9IDFsbDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZihhW2ldID4gY3VyKSByZXR1cm4gMDsKICAgICAgICBzdW0gKz0gYVtpXTsKICAgICAgICBpZihzdW0gPiBjdXIpIHsKICAgICAgICAgICAgYW5zICs9IDE7CiAgICAgICAgICAgIHN1bSA9IGFbaV07CiAgICAgICAgfQogICAgfQogICAgaWYoYW5zIDw9IGspIHJldHVybiAxOwogICAgcmV0dXJuIDA7Cn0KCgppbnQgbWFpbigpewogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgI2VuZGlmCiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgY2luID4+IGFbaV07CiAgICBjaW4gPj4gazsKICAgIGxsIGxvdyA9IDAsIGhpZ2ggPSAxZTE0OwogICAgd2hpbGUoaGlnaCAtIGxvdyA+IDEpIHsKICAgICAgICBsbCBtaWQgPSAobG93ICsgaGlnaCkgPj4gMTsKICAgICAgICBpZihvayhtaWQpKSBoaWdoID0gbWlkOwogICAgICAgIGVsc2UgbG93ID0gbWlkOwogICAgfQogICAgY291dCA8PCBoaWdoIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQo=