#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef double D; typedef pair P; #define M 1000000007 #define F first #define S second #define INF 100001 #define PB push_back int n,a[105],b[105],dp[105][100005],ans=INF; int main(void){ cin>>n; for(int i=0;i>a[i]>>b[i]; } for(int i=0;i<=n;i++)for(int j=0;j<=100000;j++)dp[i][j]=INF; dp[0][0]=0; for(int i=0;i<=n;i++){ for(int j=0;j<=i*1000;j++){ dp[i+1][j]=min(dp[i+1][j],dp[i][j]+b[i]); dp[i+1][j+a[i]]=min(dp[i+1][j+a[i]],dp[i][j]); } } for(int i=0;i<=100000;i++)ans=min(ans,max(dp[n][i],i)); cout<