#include <cstdio>
typedef long long ll;

int n,m,k,Fac[900005],Inv[900005];
const int p=1000000007;

inline ll C(const int n,const int m){return (ll)Fac[n]*Inv[m]%p*Inv[n-m]%p;}
inline ll Pow(ll a,ll b,ll s=1){for(;b;b>>=1,a=a*a%p)if(b&1)s=s*a%p;return s%p;}

int main()
{
    scanf("%d%d%d",&n,&m,&k),--n;
    ll Sum=1,Ans=1;
    for(int i=Fac[0]=1;i<=900000;++i)Fac[i]=(ll)Fac[i-1]*i%p;
    Inv[900000]=Pow(Fac[900000],p-2);
    for(int i=900000;i>=1;--i)Inv[i-1]=(ll)Inv[i]*i%p;
    for(int i=1;i<=m+k;++i)
    {
        Sum=(Sum<<1)%p;
        if(i>m)Sum=(Sum-C(i-1,m)+p)%p;
        if(i>k)Sum=(Sum-C(i-1,k)+p)%p;
        Ans=(Ans*3+C(n+i,i)*Sum)%p;
    }
    printf("%d\n",(int)Ans);
    return 0;
}