n, W = map(int, input().split()) w = [0] * n v = [0] * n for i in range(n): w[i], v[i] = map(int, input().split()) dp = [[0] * (W + 1) for _ in range(n + 1)] for i in range(n): for j in range(W + 1): if j >= w[i]: dp[i + 1][j] = max(dp[i + 1][j], dp[i][j - w[i]] + v[i]) dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]) for i in range(1, W + 1): print(dp[n][W] - dp[n][W - i] + 1)