#include<bits/stdc++.h>
#define ll long long
#define maxn 1005
using namespace std;
const int mod=1e9+7;
int n,m,k,s[maxn],t[maxn];
ll ans=1;
int main(){
	scanf("%d%d",&n,&m);
	int ss=n,tt=m;
	for(int i=0;i<n;i++) scanf("%d",&s[i]);
	for(int i=0;i<m;i++) scanf("%d",&t[i]);
	sort(s,s+n),sort(t,t+m);
	for(int i=n*m;i>0;i--){
		if(s[ss-1]==i&&t[tt-1]==i&&ss*tt) ss--,tt--;
    	else if(s[ss-1]==i&&ss){
			ans*=m-tt;
			ss--;
		}
    	else if(t[tt-1]==i&&tt){
			ans*=n-ss;
			tt--;
		}
    	else ans*=(n-ss)*(m-tt)-(n*m-i);
    	ans%=mod;
	}
	printf("%lld",ans);
	return 0;
}