#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
int red=0;
int blue=1;
int rs[9];
int bs[9];
int permRs[9];
int permBs[9];
int dfs(int deep,int color,int h,int perm,int n,int m){
if(n+m-1==deep){
return 1;
}else{
int res=0;
if(color==red){
for(int i=0;i<n;i++){
int r=permRs[i];
if((perm & r)==0 && (h<rs[i])){
res+=dfs(deep+1,red,rs[i],(perm|r),n,m);
}
}
for(int i=0;i<m;i++){
int r=permBs[i];
if((perm & r)==0 && (h>bs[i])){
res+=dfs(deep+1,blue,bs[i],(perm|r),n,m);
}
}
}else{
for(int i=0;i<n;i++){
int r=permRs[i];
if((perm & r)==0 && (rs[i]<h)){
res+=dfs(deep+1,red,rs[i],(perm|r),n,m);
}
}
for(int i=0;i<m;i++){
int r=permBs[i];
if((perm & r)==0 && (bs[i]>h)){
res+=dfs(deep+1,blue,bs[i],(perm|r),n,m);
}
}
}
return res;
}
}
int main(){
int n,m;
cin>>n>>m;
int r1=1;
for(int i=0;i<n;i++){
cin>>rs[i];
permRs[i]=r1;
r1*=2;
}
for(int i=0;i<m;i++){
cin>>bs[i];
permBs[i]=r1;
r1*=2;
}
int ans=0;
for(int i=0;i<n;i++){
ans+=dfs(1,red,rs[i],permRs[i],n,m);
}
for(int i=0;i<m;i++){
ans+=dfs(1,blue,bs[i],permBs[i],n,m);
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IHJlZD0wOwppbnQgYmx1ZT0xOwppbnQgcnNbOV07CmludCBic1s5XTsKaW50IHBlcm1Sc1s5XTsKaW50IHBlcm1Cc1s5XTsKCmludCBkZnMoaW50IGRlZXAsaW50IGNvbG9yLGludCBoLGludCBwZXJtLGludCBuLGludCBtKXsKCWlmKG4rbS0xPT1kZWVwKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCWludCByZXM9MDsKCQlpZihjb2xvcj09cmVkKXsKCQkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCQlpbnQgcj1wZXJtUnNbaV07CgkJCQlpZigocGVybSAmIHIpPT0wICYmIChoPHJzW2ldKSl7CgkJCQkJcmVzKz1kZnMoZGVlcCsxLHJlZCxyc1tpXSwocGVybXxyKSxuLG0pOwoJCQkJfQoJCQl9CgkJCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCQkJaW50IHI9cGVybUJzW2ldOwoJCQkJaWYoKHBlcm0gJiByKT09MCAmJiAoaD5ic1tpXSkpewoJCQkJCXJlcys9ZGZzKGRlZXArMSxibHVlLGJzW2ldLChwZXJtfHIpLG4sbSk7CgkJCQl9CgkJCX0KCQl9ZWxzZXsKCQkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCQlpbnQgcj1wZXJtUnNbaV07CgkJCQlpZigocGVybSAmIHIpPT0wICYmIChyc1tpXTxoKSl7CgkJCQkJcmVzKz1kZnMoZGVlcCsxLHJlZCxyc1tpXSwocGVybXxyKSxuLG0pOwoJCQkJfQoJCQl9CgkJCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCQkJaW50IHI9cGVybUJzW2ldOwoJCQkJaWYoKHBlcm0gJiByKT09MCAmJiAoYnNbaV0+aCkpewoJCQkJCXJlcys9ZGZzKGRlZXArMSxibHVlLGJzW2ldLChwZXJtfHIpLG4sbSk7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIHJlczsKCX0KfQoKaW50IG1haW4oKXsKCWludCBuLG07CgljaW4+Pm4+Pm07CglpbnQgcjE9MTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWNpbj4+cnNbaV07CgkJcGVybVJzW2ldPXIxOwoJCXIxKj0yOwoJfQoJZm9yKGludCBpPTA7aTxtO2krKyl7CgkJY2luPj5ic1tpXTsKCQlwZXJtQnNbaV09cjE7CgkJcjEqPTI7Cgl9CglpbnQgYW5zPTA7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlhbnMrPWRmcygxLHJlZCxyc1tpXSxwZXJtUnNbaV0sbixtKTsKCX0KCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCWFucys9ZGZzKDEsYmx1ZSxic1tpXSxwZXJtQnNbaV0sbixtKTsKCX0KCWNvdXQ8PGFuczw8ZW5kbDsKCXJldHVybiAwOwp9