ll@n,@k,@a[n]; char dpl[n+1][k+1]{},dpr[k+1]{}; dpl[0][0]=1; rep(i,n){ rep(j,k+1){ dpl[i+1][j]=dpl[i][j]; if(j-a[i]>=0){ dpl[i+1][j]|=dpl[i][j-a[i]]; } } } if(!dpl[n][k]){ wt(-1); exit(0); } dpr[0]=1; ll z=n; rrep(i,n){ rep(j,k+1){ if(dpl[i][j]&&dpr[k-j]){ --z; break; } } rrep(j,k+1){ if(j-a[i]>=0){ dpr[j]|=dpr[j-a[i]]; } } } wt(z);