a,b:array [1..2000] of integer;
n,m,u,k,i,j,d,sum:integer;
begin
read(n,m);
for i:=1 to n do readln(a[i]);
for i:=1 to m do readln(b[i]);
for i:=1 to (n-1) do
for j:=(i+1) to n do
if a[i]>a[j] then
begin
d:=a[i];
a[i]:=a[j];
a[j]:=d;
end;
for i:=1 to (m-1) do
for j:=(i+1) to m do
if b[i]>b[j] then
begin
d:=b[i];
b[i]:=b[j];
b[j]:=d;
end;
k:=1;
for i:=1 to n do
repeat
u:=0;
if (a[i]>b[k]) and (b[k]>0) then u:=1;
k:=k+i;
sum:=sum+u;
until u>0;
writeln(sum);
end.
type
sz=array [0..2001] of longint;
var
s,n,m,i,j:longint;
c:array [0..2001] of 0..1;
a,b:sz;
procedure kp(var a:sz;l,r:longint);
var
i,j,mid,t:longint;
begin
i:=l;
j:=r;
mid:=a[i];
repeat
while a[i]>mid do i:=i+1;
while a[j]<mid do j:=j-1;
if i<=j then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
i:=i+1;
j:=j-1;
end;
until i>j;
if i<r then kp(a,i,r);
if j>l then kp(a,l,j);
end;
begin
readln(n,m);
for i:=1 to n do
readln(a[i]);
for i:=1 to m-1 do
readln(b[i]);
read(b[m]);
kp(a,1,n);
kp(b,1,m);
for i:=1 to n do
for j:=1 to m do
if (b[j]<a[i]) and (c[j]=0) and (b[j]>0) and (a[i]>0)
then
begin
s:=s+1;
c[j]:=1;
break;
end;
write(m-s);
end.
var
n,m,i,j,k:longint;
a,b:array[1..2000] of longint;
begin
readln(n,m);
for i:=1 to n do
readln(a[i]);
for i:=1 to m do
readln(b[i]);
for i:=1 to n do
for j:=1 to m do
if a[i]>b[j] then
begin
inc(k);
continue;
end;
k:=m-k;
writeln(k);
end.