n,W=map(int,input().split()) X=10**20 M=998244353 L=10000 q1=[0]*(L*2+1) q2=[0]*(L*2+1) q3=[-X]*(L*2+1) q1[0]=1 q2[0]=1 q3[0]=0 p=0 for _ in range(n): v,w=map(int,input().split()) if w==0: p+=max(v,0) continue for i in [range(-L,L+1),reversed(range(-L,L+1))][w>0]: if q1[i]: q1[i+w]=1 if q3[i+w]