n,W=map(int,input().split()) X=10**20 M=998244353 L=10000 R=10000+10000 q1=[0]*(L+1+R) q2=[0]*(L+1+R) q3=[-X]*(L+1+R) q1[0]=1 q2[0]=1 q3[0]=0 for v,w in sorted([tuple(map(int,input().split())) for i in range(n)],key=lambda p:-p[1]): for i in [range(-L,R+1),reversed(range(-L,R+1))][w>0]: if q1[i] and -L<=i+w<=R: q1[i+w]=1 if q3[i+w]