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")