#include #include using namespace std; using namespace atcoder; using ll = long long; using mint = modint998244353; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define repf(i, n, flag) for (int i = 0; i < (int)(n) && flag; i++) #define all(v) v.begin(), v.end() int main() { int N, W; cin >> N >> W; vector w(N), v(N); rep(i, N) cin >> w[i] >> v[i]; vector dp(W+1); rep(i, N) { auto pre = dp; rep(j, W+1) { int nj = j + w[i]; if(nj > W) continue; dp[nj] = pre[j] + v[i]; } rep(j, W) dp[j+1] = max(dp[j+1], dp[j]); } for(int i = 1; i <= W; i++) { cout << dp[W] - dp[W-i] + 1 << endl; } }