#include <bits/stdc++.h>
using namespace std;
pair <int , int> sir[500001];
int64_t minim[500002];
int main ()
{
ios :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int cantitate;
cin >> cantitate;
for (int indice = 1 ; indice <= cantitate ; indice++)
{ cin >> sir[indice].second; }
for (int indice = 1 ; indice <= cantitate ; indice++)
{ cin >> sir[indice].first; }
sort(sir + 1 , sir + cantitate + 1);
for (int indice = 1 ; indice <= cantitate + 1 ; indice++)
{ minim[indice] = INT64_MAX; }
for (int indice = 1 ; indice <= cantitate ; indice++) {
for (int luat = indice ; luat ; luat--) {
if (minim[luat - 1] <= sir[indice].first)
{ minim[luat] = min(minim[luat] , minim[luat - 1] + sir[indice].second); }
}
}
int maxim = 0;
while (minim[maxim + 1] != INT64_MAX)
{ maxim++; }
cout << maxim;
return 0;
}