孩子已经没救了....
#include<bits/stdc++.h>
using namespace std;
long long f[25][25][25];
long long w(long long a, long long b, long long c) {
if (a <= 0 || b <= 0 || c <= 0) return 1;
else if (a > 20 || b > 20 || c > 20) return w(20, 20, 20);
else if (f[a][b][c] != 0) return f[a][b][c];
else if (a < b && b < c)
f[a][b][c] = w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
else
f[a][b][c] = w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
return f[a][b][c];
}
int main(){
long long d,f,g;
while(cin>>d>>f>>g){
if(d==-1&&f==-1&&g==-1)break;
if(d>20) d=21;
if(f>20) f=21;
if(g>20) g=21;
cout<<"w("<<d<<", "<<f<<", "<<g<<") = "<<w(d,f,g)<<endl;
}
return 0;
}