#include using namespace std; int main(){ int n, V; cin >> n; int v[n], w[n]; for(int i = 0; i < n; i++) cin >> v[i] >> w[i]; cin >> V; int dp[n + 1][100001]{}; for(int i = 0; i < n; i++) for(int j = 0; j < 100001; j++){ dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]); if(j + w[i] < 100001){ dp[i + 1][j + w[i]] = max(dp[i + 1][j + w[i]], dp[i][j] + v[i]); } } int l = -1, r = -1; for(int i = 1; i < 100001; i++) if(dp[n][i] == V){ ((l == -1) ? l : r) = i; } if(r == -1) r = l; if(r == 100000){ cout << l << endl << "inf" << endl; return 0; } cout << l << endl << r << endl; }