#include <bits/stdc++.h>
using namespace std;
#define file "o"
#define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
#define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
#define nl "\n"
#define ss " "
#define pb emplace_back
#define fi first
#define se second
#define sz(s) (int)s.size()
#define all(s) (s).begin(), (s).end()
#define ms(a,x) memset(a, x, sizeof (a))
#define cn continue
#define re exit(0)
typedef __int128_t int128;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll ran(ll l, ll r)
{
return uniform_int_distribution<ll> (l, r)(rng);
}
inline void rf()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
if(fopen(file".inp","r"))
{
freopen(file".inp","r",stdin);
freopen(file".out","w",stdout);
}
}
const int mod=998244353;
const int maxn=2e5+15;
const int128 inf=2000000000000000005LL;
int n;
int128 k, a[maxn];
inline bool check(int128 x)
{
int128 cnt=0;
ff(i, 1, n) if(x>a[i])
{
int128 need=(x-a[i])/i;
if((int128)i*need+a[i]<x) ++need;
cnt+=need;
}
return cnt<=k;
}
signed main()
{
rf();
ll in_k;
cin>>n>>in_k;
k=in_k;
ff(i, 1, n)
{
ll in_a;
cin>>in_a;
a[i]=in_a;
}
int128 l=0, r=inf, ans=-1;
while(l<=r)
{
int128 mid=(l+r)>>1;
if(check(mid)) ans=mid, l=mid+1;
else r=mid-1;
}
cout<<(long long)ans;
re;
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBmaWxlICJvIgojZGVmaW5lIGZmKGksIGEsIGIpIGZvcihhdXRvIGk9KGEpOyBpPD0oYik7ICsraSkKI2RlZmluZSBmZnIoaSwgYiwgYSkgZm9yKGF1dG8gaT0oYik7IGk+PShhKTsgLS1pKQojZGVmaW5lIG5sICJcbiIKI2RlZmluZSBzcyAiICIKI2RlZmluZSBwYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHN6KHMpIChpbnQpcy5zaXplKCkKI2RlZmluZSBhbGwocykgKHMpLmJlZ2luKCksIChzKS5lbmQoKQojZGVmaW5lIG1zKGEseCkgbWVtc2V0KGEsIHgsIHNpemVvZiAoYSkpCiNkZWZpbmUgY24gY29udGludWUKI2RlZmluZSByZSBleGl0KDApCgp0eXBlZGVmIF9faW50MTI4X3QgaW50MTI4Owp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKdHlwZWRlZiBwYWlyPGxsLCBsbD4gcGxsOwp0eXBlZGVmIHZlY3RvcjxwaWk+IHZwaWk7CnR5cGVkZWYgdmVjdG9yPHBsbD4gdnBsbDsKCm10MTk5MzdfNjQgcm5nKGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CmxsIHJhbihsbCBsLCBsbCByKQp7CiAgICByZXR1cm4gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxsPiAobCwgcikocm5nKTsKfQoKaW5saW5lIHZvaWQgcmYoKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7IGNvdXQudGllKG51bGxwdHIpOwogICAgaWYoZm9wZW4oZmlsZSIuaW5wIiwiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oZmlsZSIuaW5wIiwiciIsc3RkaW4pOwogICAgICAgIGZyZW9wZW4oZmlsZSIub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KfQoKY29uc3QgaW50IG1vZD05OTgyNDQzNTM7CmNvbnN0IGludCBtYXhuPTJlNSsxNTsKY29uc3QgaW50MTI4IGluZj0yMDAwMDAwMDAwMDAwMDAwMDA1TEw7CgppbnQgbjsKaW50MTI4IGssIGFbbWF4bl07CgppbmxpbmUgYm9vbCBjaGVjayhpbnQxMjggeCkKewogICAgaW50MTI4IGNudD0wOwogICAgZmYoaSwgMSwgbikgaWYoeD5hW2ldKQogICAgewogICAgICAgIGludDEyOCBuZWVkPSh4LWFbaV0pL2k7CiAgICAgICAgaWYoKGludDEyOClpKm5lZWQrYVtpXTx4KSArK25lZWQ7CiAgICAgICAgY250Kz1uZWVkOwogICAgfQogICAgcmV0dXJuIGNudDw9azsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICByZigpOwogICAgbGwgaW5fazsKICAgIGNpbj4+bj4+aW5fazsgCiAgICBrPWluX2s7CiAgICAKICAgIGZmKGksIDEsIG4pIAogICAgewogICAgICAgIGxsIGluX2E7IAogICAgICAgIGNpbj4+aW5fYTsgCiAgICAgICAgYVtpXT1pbl9hOwogICAgfQogICAgCiAgICBpbnQxMjggbD0wLCByPWluZiwgYW5zPS0xOwogICAgd2hpbGUobDw9cikKICAgIHsKICAgICAgICBpbnQxMjggbWlkPShsK3IpPj4xOwogICAgICAgIGlmKGNoZWNrKG1pZCkpIGFucz1taWQsIGw9bWlkKzE7CiAgICAgICAgZWxzZSByPW1pZC0xOwogICAgfQogICAgCiAgICBjb3V0PDwobG9uZyBsb25nKWFuczsKICAgIHJlOwp9