#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd(v) long v=0;{long _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} #define wt(v) {ulong _z=v;do*--wp=_z%10+48;while(_z/=10);} #define rep(v,e) for(long v=0;v10000||k>1000){ exit(1); } kp[0]=1; rep(i,n){ rd(ai); a[i]=ai; rrep(j,2001-ai){ kp[j+ai]|=kp[j]; } } if(!kp[k]){ write(1,"-1",2); } else{ long z=0; rep(i,n){ if(!kp[k+a[i]]){ z+=1; } } char wbuf[64],*wp=wbuf+sizeof wbuf; wt(z); write(1,wp,wbuf+sizeof wbuf-wp); } _exit(0); }