#include <bits/stdc++.h>
using namespace std;
inline void fast() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
int n;
vector<int> v[3];
bool check(int i, int j) {
  int sum = 0;
  for (int k = i; k < v[1].size(); k++) sum += v[1][k];
  for (int k = j; k < v[2].size(); k++) sum += v[2][k];
  if (sum <= (i + 2 * j)) return true;
  return false;
}
void solve() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int t, w;
    cin >> t >> w;
    v[t].push_back(w);
  }
  for (int i = 1; i <= 2; i++) {
    sort(v[i].begin(), v[i].end(), greater<int>());
  }
  int ans = INT_MAX;
  for (int i = 0; i <= (int)v[1].size(); i++) {
    for (int j = 0; j <= (int)v[2].size(); j++) {
      if (check(i, j)) ans = min(ans, i + 2 * j);
    }
  }
  cout << ans << endl;
}
int main() {
  fast();
  { solve(); }
}
