Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>using namespace std;const int mod = 1e9 + 7;int n, m;long long quickpow(long long a, long long b) {long long ret = 1;while(b) {if (b&1) ret = (ret * a) % mod;a = (a * a) % mod;b >>= 1;}return ret;}int main() {cin >> n >> m;long long ans = 1;long long tmp = 1;for (int i = 1; i <= n * m; i++) ans = (ans * i) % mod;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {int hook = (n - i) + (m - j) + 1;tmp = (tmp * hook) % mod;}}long long inv = quickpow(tmp, mod - 2);ans = (ans * inv) % mod;cout << ans << endl;return 0;