#include using namespace std; #define int long long const int N = 4e6 + 5; const int mod = 1e9 + 7; int p,q,r,fac[N],inv[N],ans,a[N]; int qpow(int a,int b) { int res = 1; while(b) { if(b & 1) res = res * a % mod; a = a * a % mod; b >>= 1; } return res; } const int inv2 = qpow(2,mod-2); int c(int x,int y) { if(x < 0 || y < 0 || x < y) return 0; return fac[x] * inv[y] % mod * inv[x-y] % mod; } signed main() { cin >> p >> q >> r; if(p == 0 && q == 0 && r == 0) {cout << 1 << '\n'; return 0;} fac[0] = 1; for(int i=1;i=0;i--) inv[i] = inv[i+1] * (i + 1) % mod; for(int i=0;i<=p+q+r+1;i++) { a[i] = c(p+q+r+1,i) * ((p + q + r - i) & 1 ? -1 : 1); // cout << a[i] << " "; if(i) a[i] = (a[i] + a[i-1]) * inv2 % mod; else a[i] = (a[i] + 1) * inv2 % mod; // cout << a[i] << " "; ans = (ans + a[i] * c(i + p - 1, p) % mod * c(i + q - 1, q) % mod * c(i + r - 1, r) % mod + mod) % mod; } cout << ans << '\n'; return 0; }