#include <cstdio>
using namespace std;
int x[1000000], y[1000000], delta2[1000000];
long long sum[1000000], delta1[1000000];
int solve(int n, long long m, int z) {
for (int i = 0; i < n; i ++) y[i] = x[i];
for (int i = 0; i < n - 1; i ++)
if (y[i+1] - y[i] > z) {
m -= y[i+1] - y[i] - z;
y[i+1] = y[i] + z;
}
for (int i = n - 1; i > 0; i --)
if (y[i-1] - y[i] > z) {
m -= y[i-1] - y[i] - z;
y[i-1] = y[i] + z;
}
if (m < 0) return -1;
for (int i = 0; i < n; i ++) sum[i] = 0;
for (int i = 0; i < n; i ++) delta1[i] = 0;
for (int i = 0; i < n; i ++) delta2[i] = 0;
for (int i = 0; i < n; i ++) {
int t = i + y[i] / z;
if (t >= n) t = n - 1;
delta1[t] += y[i] - (t - i) * z;
delta2[t] ++;
if (i > 0) delta1[i-1] -= y[i];
delta2[i] --;
}
long long s = 0;
int cnt = 0;
for (int i = n - 1; i >= 0; i --) {
s += delta1[i] + (long long)z * cnt;
sum[i] += s;
cnt += delta2[i];
}
for (int i = 0; i < n; i ++) delta1[i] = 0;
for (int i = 0; i < n; i ++) delta2[i] = 0;
for (int i = n - 1; i >= 0; i --) {
int t = i - y[i] / z;
if (t < 0) t = 0;
delta1[t] += y[i] - (i - t) * z;
delta2[t] ++;
delta1[i] -= y[i];
if (i > 0) delta2[i-1] --;
}
s = 0;
cnt = 0;
for (int i = 0; i < n; i ++) {
s += delta1[i] + (long long)z * cnt;
sum[i] += s;
cnt += delta2[i];
}
for (int i = 0; i < n; i ++)
if (sum[i] <= m) return i;
return -1;
}
int main() {
int n;
long long m;
scanf("%d%lld", &n, &m);
for (int i = 0; i < n; i ++) scanf("%d", &x[i]);
long long sum = 0;
for (int i = 0; i < n; i ++) sum += x[i];
if (sum <= m) {
printf("1 0\n");
return 0;
}
int head = 1, tail = 1000000000;
while (head <= tail) {
int mid = (head + tail) / 2;
if (solve(n, m, mid) != -1)
tail = mid - 1;
else
head = mid + 1;
}
printf("%d %d\n", solve(n, m, tail + 1) + 1, tail + 1);
return 0;
}
CiNpbmNsdWRlIDxjc3RkaW8+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHhbMTAwMDAwMF0sIHlbMTAwMDAwMF0sIGRlbHRhMlsxMDAwMDAwXTsKbG9uZyBsb25nIHN1bVsxMDAwMDAwXSwgZGVsdGExWzEwMDAwMDBdOwoKaW50IHNvbHZlKGludCBuLCBsb25nIGxvbmcgbSwgaW50IHopIHsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgeVtpXSA9IHhbaV07Cglmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpICsrKQoJCWlmICh5W2krMV0gLSB5W2ldID4geikgewoJCQltIC09IHlbaSsxXSAtIHlbaV0gLSB6OwoJCQl5W2krMV0gPSB5W2ldICsgejsKCQl9Cglmb3IgKGludCBpID0gbiAtIDE7IGkgPiAwOyBpIC0tKQoJCWlmICh5W2ktMV0gLSB5W2ldID4geikgewoJCQltIC09IHlbaS0xXSAtIHlbaV0gLSB6OwoJCQl5W2ktMV0gPSB5W2ldICsgejsKCQl9CglpZiAobSA8IDApIHJldHVybiAtMTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgc3VtW2ldID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgZGVsdGExW2ldID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgZGVsdGEyW2ldID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgewoJCWludCB0ID0gaSArIHlbaV0gLyB6OwoJCWlmICh0ID49IG4pIHQgPSBuIC0gMTsKCQlkZWx0YTFbdF0gKz0geVtpXSAtICh0IC0gaSkgKiB6OwoJCWRlbHRhMlt0XSArKzsKCQlpZiAoaSA+IDApIGRlbHRhMVtpLTFdIC09IHlbaV07CgkJZGVsdGEyW2ldIC0tOwoJfQoJbG9uZyBsb25nIHMgPSAwOwoJaW50IGNudCA9IDA7Cglmb3IgKGludCBpID0gbiAtIDE7IGkgPj0gMDsgaSAtLSkgewoJCXMgKz0gZGVsdGExW2ldICsgKGxvbmcgbG9uZyl6ICogY250OwoJCXN1bVtpXSArPSBzOwoJCWNudCArPSBkZWx0YTJbaV07Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspIGRlbHRhMVtpXSA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspIGRlbHRhMltpXSA9IDA7Cglmb3IgKGludCBpID0gbiAtIDE7IGkgPj0gMDsgaSAtLSkgewoJCWludCB0ID0gaSAtIHlbaV0gLyB6OwoJCWlmICh0IDwgMCkgdCA9IDA7CgkJZGVsdGExW3RdICs9IHlbaV0gLSAoaSAtIHQpICogejsKCQlkZWx0YTJbdF0gKys7CgkJZGVsdGExW2ldIC09IHlbaV07CgkJaWYgKGkgPiAwKSBkZWx0YTJbaS0xXSAtLTsKCX0KCXMgPSAwOwoJY250ID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKykgewoJCXMgKz0gZGVsdGExW2ldICsgKGxvbmcgbG9uZyl6ICogY250OwoJCXN1bVtpXSArPSBzOwoJCWNudCArPSBkZWx0YTJbaV07Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspCgkJaWYgKHN1bVtpXSA8PSBtKSByZXR1cm4gaTsKCXJldHVybiAtMTsKfQoKaW50IG1haW4oKSB7CglpbnQgbjsKCWxvbmcgbG9uZyBtOwoJc2NhbmYoIiVkJWxsZCIsICZuLCAmbSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspIHNjYW5mKCIlZCIsICZ4W2ldKTsKCWxvbmcgbG9uZyBzdW0gPSAwOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpICsrKSBzdW0gKz0geFtpXTsKCWlmIChzdW0gPD0gbSkgewoJCXByaW50ZigiMSAwXG4iKTsKCQlyZXR1cm4gMDsKCX0KCQoJaW50IGhlYWQgPSAxLCB0YWlsID0gMTAwMDAwMDAwMDsKCXdoaWxlIChoZWFkIDw9IHRhaWwpIHsKCQlpbnQgbWlkID0gKGhlYWQgKyB0YWlsKSAvIDI7CgkJaWYgKHNvbHZlKG4sIG0sIG1pZCkgIT0gLTEpCgkJCXRhaWwgPSBtaWQgLSAxOwoJCWVsc2UKCQkJaGVhZCA9IG1pZCArIDE7Cgl9CglwcmludGYoIiVkICVkXG4iLCBzb2x2ZShuLCBtLCB0YWlsICsgMSkgKyAxLCB0YWlsICsgMSk7CgkKCXJldHVybiAwOwp9Cg==