#include<bits/stdc++.h>
using namespace std ;
typedef long long op ;
const op N = 22 ;
op sum = 0 , n ;
op ht[ N ][ N ][ N ] ;
op ggbond( op a , op b , op c )
{
if( a <= 0 || b <= 0 || c <= 0 ) return 1 ;
else if( a > 20 || b > 20 || c > 20 ) return ggbond( 20 , 20 , 20 ) ;
else if( a < b && b < c )
{
if( !ht[ a ][ b ][ c - 1 ] ) ht[ a ][ b ][ c - 1 ] = ggbond( a , b , c - 1 ) ;
if( !ht[ a ][ b - 1 ][ c ] ) ht[ a ][ b - 1 ][ c ] = ggbond( a , b - 1 , c ) ;
if( !ht[ a ][ b ][ c - 1 ] ) ht[ a ][ b - 1 ][ c - 1 ] = ggbond( a , b - 1 , c - 1 ) ;
return ht[ a ][ b ][ c ] = ht[ a ][ b ][ c - 1 ] + ht[ a ][ b - 1 ][ c ] - ht[ a ][ b - 1 ][ c - 1 ] ;
}
else
{
if( !ht[ a - 1 ][ b ][ c ] ) ht[ a - 1 ][ b ][ c ] = ggbond( a - 1 , b , c ) ;
if( !ht[ a - 1 ][ b - 1 ][ c ] ) ht[ a - 1 ][ b - 1 ][ c ] = ggbond( a - 1 , b - 1 , c ) ;
if( !ht[ a - 1 ][ b ][ c - 1 ] ) ht[ a - 1 ][ b ][ c - 1 ] = ggbond( a - 1 , b , c - 1 ) ;
if( !ht[ a - 1 ][ b - 1 ][ c - 1 ] ) ht[ a - 1 ][ b - 1 ][ c - 1 ] = ggbond( a - 1 , b - 1 , c - 1 ) ;
return ht[ a ][ b ][ c ] = ht[ a - 1 ][ b ][ c ] + ht[ a - 1 ][ b - 1 ][ c ] + ht[ a - 1 ][ b ][ c - 1 ] - ht[ a - 1][ b - 1 ][ c - 1 ] ;
}
}
int main( )
{
op a , b , c ;
while( cin >> a >> b >> c )
if( a == -1 && b == -1 && c == -1 )
break ;
else
cout << "w(" << a << ", " << b << ", " << c << ") = " << ggbond( a , b , c ) << endl ;
}