#include "bits/stdc++.h"
using namespace std;
bool check(int mid, vector<int>& arr, int n, int op, int m) {
int doneTillNow = 0, totalOps = 0;
vector<int> dArr(n + m + 1, 0); // difference array
for(int i = 0; i < n; ++i) {
doneTillNow -= dArr[i];
if(arr[i] + doneTillNow < mid) {
int needed = mid - (arr[i] + doneTillNow);
totalOps += needed;
doneTillNow += needed;
dArr[i+m] = needed;
}
}
return totalOps <= op;
}
int solve(vector<int>& arr, int n, int subarray_len, int num_operations) {
auto it = minmax_element(arr.begin(), arr.end());
int low = *it.first;
int high = *it.second + num_operations;
while(low < high) {
int mid = (high + low)/2;
if(check(mid, arr, n, num_operations, subarray_len)) low = mid;
else high = mid-1;
}
return low;
}
int main() {
int n, subarray_len, num_operations;
cin >> n >> subarray_len >> num_operations;
vector<int> arr(n);
for(int& i: arr) cin >> i;
cout << solve(arr, n, subarray_len, num_operations);
}
I2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNoZWNrKGludCBtaWQsIHZlY3RvcjxpbnQ+JiBhcnIsIGludCBuLCBpbnQgb3AsIGludCBtKSB7CiAgaW50IGRvbmVUaWxsTm93ID0gMCwgdG90YWxPcHMgPSAwOwogIHZlY3RvcjxpbnQ+IGRBcnIobiArIG0gKyAxLCAwKTsgLy8gZGlmZmVyZW5jZSBhcnJheQoKICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICBkb25lVGlsbE5vdyAtPSBkQXJyW2ldOwogICAgaWYoYXJyW2ldICsgZG9uZVRpbGxOb3cgPCBtaWQpIHsKICAgICAgaW50IG5lZWRlZCA9IG1pZCAtIChhcnJbaV0gKyBkb25lVGlsbE5vdyk7CiAgICAgIHRvdGFsT3BzICs9IG5lZWRlZDsKICAgICAgZG9uZVRpbGxOb3cgKz0gbmVlZGVkOwogICAgICBkQXJyW2krbV0gPSBuZWVkZWQ7CiAgICB9CiAgfQoKICByZXR1cm4gdG90YWxPcHMgPD0gb3A7Cn0KCmludCBzb2x2ZSh2ZWN0b3I8aW50PiYgYXJyLCBpbnQgbiwgaW50IHN1YmFycmF5X2xlbiwgaW50IG51bV9vcGVyYXRpb25zKSB7CiAgYXV0byBpdCA9IG1pbm1heF9lbGVtZW50KGFyci5iZWdpbigpLCBhcnIuZW5kKCkpOwogIGludCBsb3cgPSAqaXQuZmlyc3Q7CiAgaW50IGhpZ2ggPSAqaXQuc2Vjb25kICsgbnVtX29wZXJhdGlvbnM7CiAgCiAgd2hpbGUobG93IDwgaGlnaCkgewogICAgaW50IG1pZCA9IChoaWdoICsgbG93KS8yOwogICAgaWYoY2hlY2sobWlkLCBhcnIsIG4sIG51bV9vcGVyYXRpb25zLCBzdWJhcnJheV9sZW4pKSBsb3cgPSBtaWQ7CiAgICBlbHNlIGhpZ2ggPSBtaWQtMTsKICB9CgogIHJldHVybiBsb3c7Cn0KCmludCBtYWluKCkgewogIGludCBuLCBzdWJhcnJheV9sZW4sIG51bV9vcGVyYXRpb25zOyAKICBjaW4gPj4gbiA+PiBzdWJhcnJheV9sZW4gPj4gbnVtX29wZXJhdGlvbnM7CiAgdmVjdG9yPGludD4gYXJyKG4pOwogIGZvcihpbnQmIGk6IGFycikgY2luID4+IGk7CgogIGNvdXQgPDwgc29sdmUoYXJyLCBuLCBzdWJhcnJheV9sZW4sIG51bV9vcGVyYXRpb25zKTsKfQ==