#include #include #include #include using namespace std; int n,k,l,r,m,tn,temp,t,M,ss; int f[200001][18]; int lg[200001]; void pre_rmq() { for(int j=1;(1<=M+1) return 1; return 0; } int main() { for(int i=2;i<=200000;i++) lg[i]=lg[i>>1]+1; while(scanf("%d%d",&n,&M)!=EOF) { ss=0; if(n==-1&&M==-1) break; for(int i=1;i<=n;i++) { scanf("%d",&f[i][0]); ss+=f[i][0]; } if(ss<=M) { printf("-1\n"); continue; } pre_rmq(); l=1;r=n; while(l<=r) { m=(l+r)>>1; if(check(m)) r=m-1; else l=m+1; } printf("%d\n",l); } }