#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int n;
vector<pair<int, int> > v;
int par = 0;
int dp[105][205][205];
int ans(int i, int t, int w) {
  if (w > par) return INT_MAX;
  if (i == -1) {
    if (t >= w) return t;
    return INT_MAX;
  }
  if (dp[i][t][w]) return dp[i][t][w];
  int res = min(ans(i - 1, t + v[i].first, w), ans(i - 1, t, w + v[i].second));
  dp[i][t][w] = res;
  return res;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    v.push_back(make_pair(x, y));
    par += x;
  }
  cout << ans(n - 1, 0, 0);
  return 0;
}
