#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(nullptr); cout.tie(nullptr);
int n;
cin >> n;
vector<int> a(n + 1, 0), b(n + 1, 0);
multiset<pair<int, int>> xl, lx;
for(int i = 1; i <= n; ++i){
cin >> a[i];
}
for(int i = 1; i <= n; ++i){
cin >> b[i];
}
for(int i = 1; i <= n; ++i){
xl.insert({a[i], b[i]});
lx.insert({b[i], a[i]});
}
int ans = 0, level = 0;
while((int) xl.size()){
while((int) lx.size() && (int) xl.size() && (*lx.begin()).first < level){
pair<int, int> tp = *lx.begin();
xl.erase(xl.find({tp.second, tp.first}));
lx.erase(lx.find(*lx.begin()));
}
if((int) xl.size()){
ans += 1, level += (*xl.begin()).first;
xl.erase(xl.find(*xl.begin()));
lx.erase({(*xl.begin()).second, (*xl.begin()).first});
}
}
cout << ans << "\n";
return 0;
}