#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000 int main(){ int n; cin>>n; vector v(n),t(n); vector> p; rep(i,n){ cin>>v[i]>>t[i]; p.emplace_back(v[i]+t[i],i); } sort(p.begin(),p.end()); vector dp(20005,false); dp[0] = true; rep(i,n){ vector ndp(20005,false); rep(j,20005){ if(dp[j]==false)continue; ndp[j] = true; if(j < t[p[i].second]){ ndp[j + v[p[i].second]] = true; } } swap(dp,ndp); } int ans = 0; rep(i,dp.size()){ if(dp[i])ans = i; } cout<