#include <cstdio>
#define C(X,Y) (P[X]*rP[Y]%mod*rP[(X)-(Y)]%mod)
const long long mod=1000000007ll;

int main()
{
  static long long v[1000000];
  v[1]=1;
  for(int i=2;i<1000000;i++){
    v[i]=(mod-mod/i)*v[mod%i]%mod;
  }
  static long long P[1000000],rP[1000000],P3[1000000],P2[1000000];
  P[0]=rP[0]=P3[0]=P2[0]=1ll;
  for(int i=1;i<1000000;i++){
    P[i]=P[i-1]*i%mod;
    rP[i]=rP[i-1]*v[i]%mod;
    P3[i]=P3[i-1]*3ll%mod;
    P2[i]=P2[i-1]*2ll%mod;
  }
  int N,M,K;
  scanf("%d%d%d",&N,&M,&K);
  long long ans=0ll;
  long long A=0,B=0;
  for(int i=0;i<=M+K;i++){
    if(i>M){
      A=(2*A+C(i-1,M))%mod;
    }
    if(i>K){
      B=(2*B+C(i-1,K))%mod;
    }
    long long T=(P2[i]+mod-A+mod-B)%mod;
    //printf("%d %lld %lld %lld\n",i,A,B,T);
    ans+=C(N-1+i,i)*T%mod*P3[M+K-i]%mod;
    ans%=mod;
  }
  printf("%lld\n",ans);
  return 0;
}
