N,M = map(int,input().split()) A = [0]+[list(map(int,input().split())) for _ in range(N)] INFTY = 10**15 dp = [[0 for _ in range(M+1)] for _ in range(N+1)] g = [[-INFTY for _ in range(M+1)] for _ in range(N+1)] for j in range(1,M+1): if j>=A[N][0]: k = (j-A[N][0])//(A[N][0]-A[N][1]) dp[N][j] = (k+1)*A[N][1]*A[N][2] g[N][j] = dp[N][j] for i in range(N-1,0,-1): for j in range(1,M+1): dp[i][j] = dp[i+1][j] if j>=A[i][0]: g[i][j] = dp[i+1][j-A[i][0]]+A[i][1]*A[i][2] if j>=A[i][0]+A[i][0]-A[i][1]: g[i][j] = max(g[i][j],g[i][j-A[i][0]+A[i][1]]+A[i][1]*A[i][2]) dp[i][j] = max(dp[i][j],g[i][j]) for j in range(1,M+1): print(dp[1][j])