///TRAN THAI BAO :3
#include <iostream>
#include <vector>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
#define maxN 500007
typedef pair<long long, long long> pii;
priority_queue<long long, vector<long long>, less<long long> >pq;
int n;
pii inp[maxN];
bool cmp(pii x, pii y)
{
return x.second < y.second;
}
void solve()
{
cin >> n;
for(int i = 1; i <= n; i++)
cin >> inp[i].first;
for(int i = 1; i <= n; i++)
{
cin >> inp[i].second;
inp[i].second += inp[i].first;
}
sort(inp+1, inp+n+1, cmp);
long long sum = 0;
for(int i = 1; i <= n; i++)
{
pq.push(inp[i].first);
sum += inp[i].first;
while(sum > inp[i].second)
{
sum -= pq.top();
pq.pop();
}
}
cout << pq.size();
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}