#include using namespace std; using ll = long long; using vi = vector; using vs = vector; using vvi = vector; using vll = vector; using vvll = vector; using pii = pair; using pll = pair; #define rep(i,j,n) for(ll i=j;i> n >> ww; vi w(n), v(n); rp(i, n) cin >> w[i] >> v[i]; vvi dp(n, vi(ww + 10, 0)); rp(i, n) { if (i > 0) { rep(j, 1, ww + 10) { if (j >= w[i]) dp[i][j] = max(dp[i][j - 1], dp[i - 1][j - w[i]] + v[i]); else dp[i][j] = dp[i][j - 1]; if (i > 0) dp[i][j] = max(dp[i][j], dp[i - 1][j]); } } else { rp(j, ww + 10)if (j >= w[0]) dp[0][j] = v[0]; } } rep(i, 1, ww + 1) { cout << dp[n-1][ww] - dp[n-1][ww - i]+1 << endl; } }