#include <bits/stdc++.h>
#pragma GCC optimize ("O3")
#define int long long
using namespace std;
#define INF 1e18
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, W;
int S = 0;
cin >> N >> W;
vector<int> w(N), v(N);
for (int i = 0; i < N; i++) {
cin >> w[i] >> v[i];
S += v[i];
}
vector<int> dp(S + 1, 1e9); //從價值來dp
dp[0] = 0;
for(int i = 0; i < N; i++){
for(int j = S; j >= 0; j--){
if(j >= v[i]){
dp[j] = min(dp[j], dp[j - v[i]] + w[i]);
}
}
}
for(int i = 0; i <= S; i++){
cout << dp[i] << endl;
}
for(int i = S; i >= 0; i--){
if(dp[i] <= W){
cout << i << endl;
exit(0);
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNwcmFnbWEgR0NDIG9wdGltaXplICgiTzMiKQojZGVmaW5lIGludCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgSU5GIDFlMTgKCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGludCBOLCBXOwogICAgaW50IFMgPSAwOwogICAgY2luID4+IE4gPj4gVzsKICAgIHZlY3RvcjxpbnQ+IHcoTiksIHYoTik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgewogICAgICAgIGNpbiA+PiB3W2ldID4+IHZbaV07CiAgICAgICAgUyArPSB2W2ldOyAKICAgIH0KICAgIHZlY3RvcjxpbnQ+IGRwKFMgKyAxLCAxZTkpOyAvL+W+nuWDueWAvOS+hmRwIAogICAgZHBbMF0gPSAwOwogICAgZm9yKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgIGZvcihpbnQgaiA9IFM7IGogPj0gMDsgai0tKXsKICAgICAgICBpZihqID49IHZbaV0pewogICAgICAgICAgZHBbal0gPSBtaW4oZHBbal0sIGRwW2ogLSB2W2ldXSArIHdbaV0pOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZm9yKGludCBpID0gMDsgaSA8PSBTOyBpKyspewogICAgICBjb3V0IDw8IGRwW2ldIDw8IGVuZGw7IAogICAgfQogICAgZm9yKGludCBpID0gUzsgaSA+PSAwOyBpLS0pewogICAgICBpZihkcFtpXSA8PSBXKXsKICAgICAgICBjb3V0IDw8IGkgPDwgZW5kbDsgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGV4aXQoMCk7CiAgICAgIH0KICAgIH0KfQ==