void solve() {
int a[1010],p[1010];
int n,k;cin>>n>>k;
int mx=0;
for(int i=1;i<=n;i++){
cin>>a[i];
mx=max(mx,a[i]);
}
auto check =[&](int mid)->bool {
for(int i=1;i<=n;i++){
int k1=0;
p[i]=mid;
for(int j=i;j<=n;j++){
if(p[j]<=a[j])break;
if(j==n){
k1=k+1;
break;
}
k1+=p[j]-a[j];
if(k1>k)break;
p[i+1]=p[i]-1;
}
if(k1<=k)return true;
}
return false;
};
int l=mx,r=mx+k;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid))l=mid+1;
else r=mid-1;
}
cout<<r<<endl;
}