#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<int,pii> pr;
int dp[1005][1005];
int minVal(int n,int wt,vector<int> &arr){
if(wt<0){
return 1e9;
}
if(n == 0){
if(wt == 0){
return 0;
}
return 1e9;
}
if(dp[n][wt]!=-1){
return dp[n][wt];
}
if(arr[n-1] == -1){
return dp[n][wt] = minVal(n-1,wt,arr);
}
return dp[n][wt] = min(arr[n-1] + minVal(n,wt-n,arr),minVal(n-1,wt,arr));
}
int main(int argc,char const* argv[]){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,w;
cin>>n>>w;
vector<int> arr(n);
for(int i=0;i<n;i++){
cin>>arr[i];
}
memset(dp,-1,sizeof(dp));
int val = minVal(n,w,arr);
if(val > 1e7){
cout<<-1<<endl;
}else{
cout<<val<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwp0eXBlZGVmIHBhaXI8aW50LHBpaT4gcHI7CmludCBkcFsxMDA1XVsxMDA1XTsKaW50IG1pblZhbChpbnQgbixpbnQgd3QsdmVjdG9yPGludD4gJmFycil7CglpZih3dDwwKXsKCQlyZXR1cm4gMWU5OwoJfQoJaWYobiA9PSAwKXsKCQlpZih3dCA9PSAwKXsKCQkJcmV0dXJuIDA7CgkJfQoJCXJldHVybiAxZTk7Cgl9CglpZihkcFtuXVt3dF0hPS0xKXsKCQlyZXR1cm4gZHBbbl1bd3RdOwoJfQoJaWYoYXJyW24tMV0gPT0gLTEpewoJCXJldHVybiBkcFtuXVt3dF0gPSBtaW5WYWwobi0xLHd0LGFycik7Cgl9CglyZXR1cm4gZHBbbl1bd3RdID0gbWluKGFycltuLTFdICsgbWluVmFsKG4sd3QtbixhcnIpLG1pblZhbChuLTEsd3QsYXJyKSk7Cn0KaW50IG1haW4oaW50IGFyZ2MsY2hhciBjb25zdCogYXJndltdKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKTsKCWludCBuLHc7CgljaW4+Pm4+Pnc7Cgl2ZWN0b3I8aW50PiBhcnIobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PmFycltpXTsKCX0KCW1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCWludCB2YWwgPSBtaW5WYWwobix3LGFycik7CglpZih2YWwgPiAxZTcpewoJCWNvdXQ8PC0xPDxlbmRsOwoJfWVsc2V7CgkJY291dDw8dmFsPDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=