#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_map>
#define endl '\n';
#define all(v) ((v).begin()), ((v).end())
#define sz(s) (int)s.size()
#define Ceil(x,y) ((x+y-1)/y)
#define RT(x) return cout<<x,0;
#define mem(x,y) memset(x,y,sizeof(x))
#define vi vector<int>
#define pii pair<int,int>
#define fx(n) fixed<<setprecision(n)
#define watch(x) cout<<(#x)<<" = "<<x<<endl
#define forr(i, n) for (int i = 0; i < int(n); i++)
typedef long long ll;
typedef unsigned long long ull;
typedef double dl;
const double PI = acos(-1), EPS = 1e-7;
const int OO = 0x3f3f3f3f, N = 1e7 + 5, MOD = 1e9 + 7;
using namespace std;
void fast(){std::ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);}
ll n,s;
vector<int>v(n+1);
ll calc(ll mid)
{
for(int i=1;i<=n;i++)
v[i]=v[i]+i*mid;
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
cout<<"\n";
sort(all(v));
ll cost=0;
for(int i=1;i<=mid;i++)
cost+=v[i];
return cost;
}
int main()
{
fast();
cin>>n>>s;
for(int i=1;i<=n;i++)
cin>>v[i];
ll st=1,e=n,mid=0,ans=0;
while(st<=e)
{
mid=(st+e)/2;
if(calc(mid)<=s)
{
ans=calc(mid);
st=mid+1;
}
else
e=mid-1;
cout<<ans<<"\n";
}
cout<<mid<<" "<<ans<<"\n";
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNkZWZpbmUgZW5kbCAnXG4nOwojZGVmaW5lIGFsbCh2KSAoKHYpLmJlZ2luKCkpLCAoKHYpLmVuZCgpKQojZGVmaW5lIHN6KHMpICAgICAgICAgICAgICAgKGludClzLnNpemUoKQojZGVmaW5lIENlaWwoeCx5KSAgICAgICAgICAgICAoKHgreS0xKS95KQojZGVmaW5lIFJUKHgpICAgICAgICAgICByZXR1cm4gY291dDw8eCwwOwojZGVmaW5lIG1lbSh4LHkpICAgIG1lbXNldCh4LHksc2l6ZW9mKHgpKQojZGVmaW5lIHZpICAgICAgICAgICAgICAgICAgICB2ZWN0b3I8aW50PgojZGVmaW5lIHBpaSAgICAgICAgICAgICAgICAgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZ4KG4pICAgICAgICAgICBmaXhlZDw8c2V0cHJlY2lzaW9uKG4pCiNkZWZpbmUgd2F0Y2goeCkgY291dDw8KCN4KTw8IiA9ICI8PHg8PGVuZGwKI2RlZmluZSBmb3JyKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgaW50KG4pOyBpKyspCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgZG91YmxlIGRsOwpjb25zdCBkb3VibGUgUEkgPSBhY29zKC0xKSwgRVBTID0gMWUtNzsKY29uc3QgaW50IE9PID0gMHgzZjNmM2YzZiwgTiA9IDFlNyArIDUsIE1PRCA9IDFlOSArIDc7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgZmFzdCgpe3N0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpO30KbGwgbixzOwp2ZWN0b3I8aW50PnYobisxKTsKbGwgY2FsYyhsbCBtaWQpCnsKICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgIHZbaV09dltpXStpKm1pZDsKICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgIGNvdXQ8PHZbaV08PCIgIjsKICAgY291dDw8IlxuIjsKICAgc29ydChhbGwodikpOwogICBsbCBjb3N0PTA7CiAgIGZvcihpbnQgaT0xO2k8PW1pZDtpKyspCiAgIGNvc3QrPXZbaV07CiAgIHJldHVybiBjb3N0Owp9CmludCBtYWluKCkKewogICBmYXN0KCk7CiAgIGNpbj4+bj4+czsKICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgIGNpbj4+dltpXTsKICAgbGwgc3Q9MSxlPW4sbWlkPTAsYW5zPTA7CiAgIHdoaWxlKHN0PD1lKQogICB7CiAgICAgIG1pZD0oc3QrZSkvMjsKICAgICAgaWYoY2FsYyhtaWQpPD1zKQogICAgICB7CiAgICAgICAgIGFucz1jYWxjKG1pZCk7CiAgICAgICAgIHN0PW1pZCsxOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgZT1taWQtMTsKICAgICAgY291dDw8YW5zPDwiXG4iOwogICB9CiAgIGNvdXQ8PG1pZDw8IiAiPDxhbnM8PCJcbiI7CiAgICByZXR1cm4gMDsKfQ==