#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,a[N],b[N];
int check(int x){
priority_queue<int>q;
for(int i=1;i<=n;i++)q.push(a[i]);
for(int i=x;i>=1;i--){
int t=q.top();q.pop();
if(b[i]>t)return 0;
else q.push(t-b[i]);
}
return 1;
}
#undef int
int main(){
#define int long long
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)cin>>b[i];
sort(b+1,b+1+m);
int l=0,r=m,ans=0;
while(l<=r){
int mid=l+(r-l)/2;
if(check(mid))l=mid+1,ans=mid;
else r=mid-1;
}
cout<<ans;
return 0;
}