N, W = map(int, input().split()) WV = [list(map(int, input().split())) for _ in range(N)] dp = [0] * (W + 1) for w, v in WV: for i in reversed(range(W - w + 1)): dp[i + w] = max(dp[i + w], dp[i] + v) for i in reversed(range(W)): print(dp[W] - dp[i] + 1)