#include<bits/stdc++.h>
using namespace std;
const int kMaxN=1e5+4;
unsigned long long n,k,a[kMaxN],minn=LLONG_MAX;
bool C(unsigned long long x){
  unsigned long long s=0,w=0;
  for(int i=1;i<=n;i++){
    if(a[i]+s<x){
      w+=(x-a[i]-s+i-1)/i;
      s+=(x-a[i]-s+i-1)/i*i;
    }
  }
  return w<=k;
}
int main(){
  cin>>n>>k;
  for(int i=1;i<=n;i++){
    cin>>a[i];
    minn=min(minn,a[i]);
  }
  unsigned long long l=0,r=minn+k*n;
  while(l<r){
    unsigned long long mid=(l+r+1)/2;
    if(C(mid)){
      l=mid;
    }else{
      r=mid-1;
    }
  }
  cout<<l;
  return 0;
}