#include<stdio.h>
int n,m;
long long int w[10000];
long long int c[10000];
long long int ams=0;
void sort (long long int* s,int left,int right);
int part (long long int*s,int left,int right);
void search (int i,int j);
void swap (long long int *t,long long int *g);
int main(){
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++){
scanf("%lld",&w[i]);
}
for(int i=0;i<m;i++){
scanf("%lld",&c[i]);
}
sort(w,0,n-1);sort(c,0,m-1);
search(0,0);
printf("%lld",ams);
}
void sort(long long int *s,int left,int right){
if(left>=right) return;
int par=part(s,left,right);
sort(s,0,par-1);
sort(s,par+1,right);
}
int part (long long int *s,int left,int right){
int lo=left;
int hi=right-1;
while(1){
for(;lo<right;lo++){
if(s[lo]>=s[right]){
break;
}
}
for(;hi>=left;hi--){
if(s[hi]<s[right]){
break;
}
}
if(hi<=lo){
swap(&s[lo],&s[right]);
return lo;
}else{
swap(&s[hi],&s[lo]);
}
}
}
void swap(long long int *t,long long int* g){
long int tmp=*t;
*t=*g;
*g=tmp;
}
void search(int i,int j){
if(i>=n||j>=m){
return;
}
if(w[i]>=c[j]){
ams++;
search(i+1,j+1);
}else{
search(i+1,j);
}
}