#include <bits/stdc++.h>
using namespace std;
const int MAXN = 207;
int dp[2][MAXN][MAXN];
int main() {
  int n;
  while (~scanf("%d", &n)) {
    memset(dp, 0, sizeof(dp));
    int i, j, now = 0;
    dp[now][0][0] = 1;
    while (n--) {
      now ^= 1;
      memset(dp[now], 0, sizeof(dp[now]));
      int a, b;
      scanf("%d%d", &a, &b);
      for (i = 0; i < MAXN; i++)
        for (j = 0; j < MAXN; j++) {
          if (!dp[now ^ 1][i][j]) continue;
          dp[now][i + a][j] = 1;
          if (j + b < MAXN) dp[now][i][j + b] = 1;
        }
    }
    int ans;
    for (i = 0; i < MAXN; i++) {
      int bf = 0;
      for (j = 0; j <= i; j++)
        if (dp[now][i][j]) {
          bf = 1;
          break;
        }
      if (bf) {
        ans = i;
        break;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
