#include<bits/stdc++.h>
//#include <boost/multiprecision/cpp_int.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define fast std::ios::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
#define clr0(a) memset((a), 0, sizeof(a))
#define clr1(a) memset((a), -1, sizeof(a))
#define srtin1 cin.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );
#define strin2 getline(cin, text);
#define ll long long
#define test cout<<"archit\n"
#define debug(x) cout<<x<<" "
#define debug1(x) cout<<x<<"\n"
#define debug2(x,y) cout<<x<<" "<<y<<"\n"
#define debug3(x, y, z) cout<<x<<" "<<y<<" "<<z<<"\n"
#define pb push_back
#define pi pair<int,int>
#define fi first
#define si second
#define mod (ll)1000000007
#define mxn 1000005
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
//using namespace boost::multiprecision;
using namespace __gnu_pbds;
typedef struct node
{
int val,wt;
}node;
int dp[1005][1005];
int solve(node* arr, int n, int weight)
{
memset(dp, 0, sizeof(dp));
for(int i=0;i<=weight;i++){
dp[0][i] = INT_MAX;
}
for(int i=0;i<=n;i++){
dp[i][0] = 0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=weight;j++){
dp[i][j] = dp[i-1][j];
if(arr[i-1].val == -1){
continue;
}
if(arr[i-1].wt<=j){
if(dp[i][j - arr[i-1].wt]!=INT_MAX)
dp[i][j] = min(dp[i][j], arr[i-1].val + dp[i][j - arr[i-1].wt]);
}
}
}
return dp[n][weight];
}
int main()
{
fast;
int n,w;
cin>>n>>w;
node* arr = new node[n];
for(int i=1;i<=n;i++){
int p; cin>>p;
arr[i-1].wt = i;
arr[i-1].val = p;
}
int ans = solve(arr, n, w);
if(ans == INT_MAX){
ans = -1;
}
debug(ans);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KLy8jaW5jbHVkZSA8Ym9vc3QvbXVsdGlwcmVjaXNpb24vY3BwX2ludC5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiNkZWZpbmUgZmFzdCBzdGQ6Omlvczo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCkKI2RlZmluZSBjbHIwKGEpIG1lbXNldCgoYSksIDAsIHNpemVvZihhKSkKI2RlZmluZSBjbHIxKGEpIG1lbXNldCgoYSksIC0xLCBzaXplb2YoYSkpCiNkZWZpbmUgc3J0aW4xIGNpbi5pZ25vcmUgKCBzdGQ6Om51bWVyaWNfbGltaXRzPHN0ZDo6c3RyZWFtc2l6ZT46Om1heCgpLCAnXG4nICk7CiNkZWZpbmUgc3RyaW4yIGdldGxpbmUoY2luLCB0ZXh0KTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB0ZXN0IGNvdXQ8PCJhcmNoaXRcbiIKI2RlZmluZSBkZWJ1Zyh4KSBjb3V0PDx4PDwiICIKI2RlZmluZSBkZWJ1ZzEoeCkgY291dDw8eDw8IlxuIgojZGVmaW5lIGRlYnVnMih4LHkpIGNvdXQ8PHg8PCIgIjw8eTw8IlxuIgojZGVmaW5lIGRlYnVnMyh4LCB5LCB6KSBjb3V0PDx4PDwiICI8PHk8PCIgIjw8ejw8IlxuIgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBpIHBhaXI8aW50LGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNpIHNlY29uZAojZGVmaW5lIG1vZCAobGwpMTAwMDAwMDAwNwojZGVmaW5lIG14biAxMDAwMDA1CiNkZWZpbmUgb3JkZXJlZF9zZXQgdHJlZTxpbnQsIG51bGxfdHlwZSxsZXNzPGludD4sIHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy91c2luZyBuYW1lc3BhY2UgYm9vc3Q6Om11bHRpcHJlY2lzaW9uOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKdHlwZWRlZiBzdHJ1Y3Qgbm9kZQp7CiAgICBpbnQgdmFsLHd0Owp9bm9kZTsKaW50IGRwWzEwMDVdWzEwMDVdOwppbnQgc29sdmUobm9kZSogYXJyLCBpbnQgbiwgaW50IHdlaWdodCkKewogICAgbWVtc2V0KGRwLCAwLCBzaXplb2YoZHApKTsKICAgIGZvcihpbnQgaT0wO2k8PXdlaWdodDtpKyspewogICAgICAgIGRwWzBdW2ldID0gSU5UX01BWDsKICAgIH0KICAgIGZvcihpbnQgaT0wO2k8PW47aSsrKXsKICAgICAgICBkcFtpXVswXSA9IDA7CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgZm9yKGludCBqPTE7ajw9d2VpZ2h0O2orKyl7CiAgICAgICAgICAgIGRwW2ldW2pdID0gZHBbaS0xXVtqXTsKICAgICAgICAgICAgaWYoYXJyW2ktMV0udmFsID09IC0xKXsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGFycltpLTFdLnd0PD1qKXsKICAgICAgICAgICAgICAgIGlmKGRwW2ldW2ogLSBhcnJbaS0xXS53dF0hPUlOVF9NQVgpCiAgICAgICAgICAgICAgICAgICAgZHBbaV1bal0gPSBtaW4oZHBbaV1bal0sIGFycltpLTFdLnZhbCArIGRwW2ldW2ogLSBhcnJbaS0xXS53dF0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGRwW25dW3dlaWdodF07Cn0KaW50IG1haW4oKQp7CiAgICBmYXN0OwogICAgaW50IG4sdzsKICAgIGNpbj4+bj4+dzsKICAgIG5vZGUqIGFyciA9IG5ldyBub2RlW25dOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGludCBwOyBjaW4+PnA7CiAgICAgICAgYXJyW2ktMV0ud3QgPSBpOwogICAgICAgIGFycltpLTFdLnZhbCA9IHA7CiAgICB9CiAgICBpbnQgYW5zID0gc29sdmUoYXJyLCBuLCB3KTsKICAgIGlmKGFucyA9PSBJTlRfTUFYKXsKICAgICAgICBhbnMgPSAtMTsKICAgIH0KICAgIGRlYnVnKGFucyk7CiAgICByZXR1cm4gMDsKfQo=