#include <bits/stdc++.h>
using namespace std;
int main() {
  int i, j, k, res, n, sum, t, w, temp, sz1, sz2;
  while (scanf("%d", &n) == 1) {
    vector<int> v[3];
    sum = 0;
    for (i = 0; i < n; i++) {
      scanf("%d%d", &t, &w);
      v[t].push_back(w);
      sum += w;
    }
    sort(v[1].begin(), v[1].end());
    sort(v[2].begin(), v[2].end());
    sz1 = v[1].size();
    sz2 = v[2].size();
    res = 10000000;
    for (i = 0; i <= sz1; i++) {
      for (j = 0; j <= sz2; j++) {
        temp = sum;
        for (k = sz1 - 1; k > sz1 - 1 - i; k--) {
          temp -= v[1][k];
        }
        for (k = sz2 - 1; k > sz2 - 1 - j; k--) {
          temp -= v[2][k];
        }
        if (temp <= i + j * 2) res = res < i + j * 2 ? res : i + j * 2;
      }
    }
    printf("%d\n", res);
  }
  return 0;
}
