#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n;
ll S;
vector<ll> a;
pair<int, ll> maxSouvenirs() {
int l = 0, r = n, best_k = 0;
ll best_cost = 0;
while (l <= r) {
int mid = (l + r) / 2;
vector<ll> cost(n);
for (int i = 0; i < n; i++) {
cost[i] = a[i] + 1LL * (i + 1) * mid;
}
sort(cost.begin(), cost.end());
ll total = 0;
for (int i = 0; i < mid; i++) total += cost[i];
if (total <= S) {
best_k = mid;
best_cost = total;
l = mid + 1;
} else {
r = mid - 1;
}
}
return {best_k, best_cost};
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> S;
a.resize(n);
for (int i = 0; i < n; i++) cin >> a[i];
auto [k, cost] = maxSouvenirs();
cout << k << " " << cost << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCgppbnQgbjsKbGwgUzsKdmVjdG9yPGxsPiBhOwoKcGFpcjxpbnQsIGxsPiBtYXhTb3V2ZW5pcnMoKSB7CiAgICBpbnQgbCA9IDAsIHIgPSBuLCBiZXN0X2sgPSAwOwogICAgbGwgYmVzdF9jb3N0ID0gMDsKCiAgICB3aGlsZSAobCA8PSByKSB7CiAgICAgICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgICAgIHZlY3RvcjxsbD4gY29zdChuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjb3N0W2ldID0gYVtpXSArIDFMTCAqIChpICsgMSkgKiBtaWQ7CiAgICAgICAgfQogICAgICAgIHNvcnQoY29zdC5iZWdpbigpLCBjb3N0LmVuZCgpKTsKCiAgICAgICAgbGwgdG90YWwgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlkOyBpKyspIHRvdGFsICs9IGNvc3RbaV07CgogICAgICAgIGlmICh0b3RhbCA8PSBTKSB7CiAgICAgICAgICAgIGJlc3RfayA9IG1pZDsKICAgICAgICAgICAgYmVzdF9jb3N0ID0gdG90YWw7CiAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHIgPSBtaWQgLSAxOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4ge2Jlc3RfaywgYmVzdF9jb3N0fTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGNpbiA+PiBuID4+IFM7CiAgICBhLnJlc2l6ZShuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBjaW4gPj4gYVtpXTsKCiAgICBhdXRvIFtrLCBjb3N0XSA9IG1heFNvdXZlbmlycygpOwogICAgY291dCA8PCBrIDw8ICIgIiA8PCBjb3N0IDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQo=