import sys from collections import deque, Counter input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 63 - 1 mod = 998244353 n, w = mi() dp = [[-inf] * (w + 1) for _ in range(n + 1)] dp[0][0] = 0 for i in range(n): u, v = mi() for j in range(w + 1): if j + u <= w: dp[i + 1][j + u] = max(dp[i][j] + v, dp[i + 1][j + u]) dp[i + 1][j] = max(dp[i][j], dp[i + 1][j]) for i in range(1, w + 1): dp[n][i] = max(dp[n][i], dp[n][i - 1]) ans = [] for i in range(1, w + 1): ans.append(dp[n][w] - dp[n][w - i] + 1) for v in ans: print(v)