#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct Node{
int data[1005];
int n;
Node(){
n = 1;
memset(data,0,sizeof data);
}
};
Node nPlus(Node n1,Node n2){
Node ans;
int i,j,t,len,len2;
len = min(n1.n,n2.n);
len2 = max(n1.n,n2.n);
for(i=0;i<len;i++){
ans.data[i] += n1.data[i]+n2.data[i];
if(ans.data[i]>=10){
ans.data[i+1] = ans.data[i]/10;
ans.data[i] %= 10;
}
}
if(n1.n>len){
for(i=len;i<len2;i++){
ans.data[i] += n1.data[i];
if(ans.data[i]>=10){
ans.data[i+1] = ans.data[i]/10;
ans.data[i] %= 10;
}
}
}
else if(n2.n>len){
for(i=len;i<len2;i++){
ans.data[i] += n2.data[i];
if(ans.data[i]>=10){
ans.data[i+1] = ans.data[i]/10;
ans.data[i] %= 10;
}
}
}
ans.n = len2;
if(ans.data[ans.n]>0){
ans.n++;
}
return ans;
}
Node mul(Node n1,int m){
int i,j;
if(m==0){
Node s;
return s;
}
for(i=0;i<n1.n;i++){
n1.data[i] *= m;
}
for(i=0;i<n1.n;i++){
if(n1.data[i]>=10){
n1.data[i+1] += n1.data[i]/10;
n1.data[i] %= 10;
}
}
while(n1.data[i]>0){
if(n1.data[i]>=10){
n1.data[i+1] += n1.data[i]/10;
n1.data[i] %= 10;
}
i++;
}
n1.n = i;
return n1;
}
int main(){
int i,j;
Node node[4],ans[4];
memset(ans,0,sizeof ans);
memset(node,0,sizeof node);
node[0].data[0] = 1;
node[1].data[0] = 0;
node[2].data[0] = 0;
node[0].n = node[1].n = node[2].n = 1;
for(i=4;i<=100;i++){
node[3] = nPlus(nPlus(node[2],node[1]),node[0]);
node[0] = node[1];
node[1] = node[2];
node[2] = node[3];
}
ans[0] = node[3];
memset(node,0,sizeof node);
node[0].data[0] = 0;
node[1].data[0] = 1;
node[2].data[0] = 0;
node[0].n = node[1].n = node[2].n = 1;
for(i=4;i<=100;i++){
node[3] = nPlus(nPlus(node[2],node[1]),node[0]);
node[0] = node[1];
node[1] = node[2];
node[2] = node[3];
}
ans[1] = node[3];
memset(node,0,sizeof node);
node[0].data[0] = 0;
node[1].data[0] = 0;
node[2].data[0] = 1;
node[0].n = node[1].n = node[2].n = 1;
for(i=4;i<=100;i++){
node[3] = nPlus(nPlus(node[2],node[1]),node[0]);
node[0] = node[1];
node[1] = node[2];
node[2] = node[3];
}
ans[2] = node[3];
int a0,a1,a2;
while(scanf("%d%d%d",&a0,&a1,&a2)!=EOF){
Node tmp = mul(ans[0],a0);
ans[3] = tmp;
tmp = mul(ans[1],a1);
ans[3] = nPlus(ans[3],tmp);
tmp = mul(ans[2],a2);
ans[3] = nPlus(ans[3],tmp);
for(i=ans[3].n-1;i>-1;i--){
cout<<ans[3].data[i];
}
cout<<endl;
}
return 0;
}