#include using namespace std; int dp[100010]; int main() { cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; vector v(n), w(n); int wsum = 0; for (int i = 0; i < n; i++) { cin >> v[i] >> w[i]; wsum += w[i]; } int V; cin >> V; for (int i = 0; i < n; i++) { for (int j = wsum + 1; j >= w[i]; j--) { dp[j] = max(dp[j], dp[j - w[i]] + v[i]); } } for (int i = 1; i <= wsum; i++) { if (dp[i] == V) { cout << i << endl; break; } } if (dp[wsum + 1] == V) { cout << "inf" << endl; } else { for (int i = wsum; i > 0; i--) { if (dp[i] == V) { cout << i << endl; break; } } } return 0; }