#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;

int n;
P t[1000];

int main(){
  while(1){
    cin>>n;
    if(n==0)break;
    int sum=0,sum2=0;
    for(int i=0;i<n;i++){
      cin>>t[i].first>>t[i].second;
      sum+=t[i].first;
      sum2+=t[i].second;
    }
    sort(t,t+n);
    int X=sum-t[n-1].first;
    if(t[n-1].first<=X){
      cout<<sum+sum2<<endl;
      continue; 
    }
    int Y=t[n-1].first-X;
    int dp[1002]={};
    for(int i=0;i<n-1;i++){
      int se=t[i].second;
      for(int j=Y;j>=se;j--)
        dp[j]=max(dp[j],dp[j-se]+se);
    }
    cout<<t[n-1].first*2+sum2-dp[Y]<<endl;
  }
  return 0;
}