local mmi, mma = math.min, math.max local n, w = io.read("*n", "*n") local t = {} for i = 1, w do t[i] = 0 end for i = 1, n do local wi, vi = io.read("*n", "*n") for j = w - wi, 1, -1 do t[j + wi] = mma(t[j + wi], t[j] + vi) end if wi <= w then t[wi] = mma(t[wi], vi) end end for i = 1, w - 1 do print(t[w] - t[w - i] + 1) end print(t[w] + 1)