Lang:G++
Edit123456789101112131415161718192021222324252627282930#include<cstdio>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;#define ll long longconst int maxn=300010;const int Mod=1e9+7;ll rev[maxn],fac[maxn],n,m,ans;void prepare(){fac[0]=1; rev[1]=1;for(int i=1;i<=n*m;i++){fac[i]=fac[i-1]*i%Mod;}for(int i=2;i<=n*m;i++) rev[i]=(Mod-Mod/i)*rev[Mod%i]%Mod;}int main(){scanf("%lld%lld",&n,&m);prepare();ans=fac[n*m];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){ans=ans*rev[i+j-1]%Mod;}printf("%lld\n",ans);return 0;}