def solve(): N,W=map(int,input().split()) inf=float("inf") DP=[0]*(W+1) for i in range(N): w,v=map(int,input().split()) for x in range(W-w,-1,-1): DP[x+w]=max(DP[x+w], DP[x]+v) return [(DP[W]-DP[W-X])+1 for X in range(1,W+1)] #================================================== print(*solve(),sep="\n")