#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
struct Stu{
int w;
int id;
}stu[1000001];
struct Good{
int c;
int id;
}good[1000001];
bool cmp(Stu a,Stu b){
if(a.w != b.w) return a.w > b.w;
else return a.id < b.id;
}
bool cmp1(Good a,Good b){
if(a.c!=b.c) return a.c > b.c;
else return a.id < b.id;
}
int main(){
int n,m;
int sum=0;
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++){
scanf("%d",&stu[i].w);
stu[i].id = i;
}
for(int i=0;i<m;i++){
scanf("%d",&good[i].c);
good[i].id = i;
}
sort(stu,stu+n,cmp);
sort(good,good+m,cmp1);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(stu[i].w>=good[j].c&&good[j].c!=0){
sum++;
good[j].c = 0;
break;
}
}
}
printf("%d",sum);
}