#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
class CheeseSlicing
{
public :
int dp[ 101 ] [ 101 ] [ 101 ] ;
int func( int a,int b,int c,int s)
{
vector < int > v= { a,b,c} ;
sort( v.begin ( ) ,v.end ( ) ) ;
if ( v[ 2 ] < s)
return dp[ v[ 0 ] ] [ v[ 1 ] ] [ v[ 2 ] ] = 0 ;
if ( dp[ v[ 0 ] ] [ v[ 1 ] ] [ v[ 2 ] ] ! = - 1 )
return dp[ v[ 0 ] ] [ v[ 1 ] ] [ v[ 2 ] ] ;
int ans= v[ 0 ] * v[ 1 ] ;
for ( int i= 1 ; i< v[ 0 ] ; i++ )
ans= max( ans,func( i,v[ 1 ] ,v[ 2 ] ,s) + func( v[ 0 ] - i,v[ 1 ] ,v[ 2 ] ,s) ) ;
for ( int i= 1 ; i< v[ 1 ] ; i++ )
ans= max( ans,func( v[ 0 ] ,i,v[ 2 ] ,s) + func( v[ 0 ] ,v[ 1 ] - i,v[ 2 ] ,s) ) ;
for ( int i= 1 ; i< v[ 2 ] ; i++ )
ans= max( ans,func( v[ 0 ] ,v[ 1 ] ,i,s) + func( v[ 0 ] ,v[ 1 ] ,v[ 2 ] - i,s) ) ;
return dp[ v[ 0 ] ] [ v[ 1 ] ] [ v[ 2 ] ] = ans;
}
int totalArea( int A, int B, int C, int S)
{
for ( int i= 0 ; i< 101 ; i++ )
{
for ( int j= 0 ; j< 101 ; j++ )
{
for ( int k= 0 ; k< 101 ; k++ )
dp[ i] [ j] [ k] = - 1 ;
}
}
vector < int > v= { A,B,C} ;
sort( v.begin ( ) ,v.end ( ) ) ;
return func( v[ 0 ] ,v[ 1 ] ,v[ 2 ] ,S) ;
}
} ;
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBDaGVlc2VTbGljaW5nCnsKICAgIHB1YmxpYzoKICAgICAgICBpbnQgZHBbMTAxXVsxMDFdWzEwMV07CiAgICAgICAgaW50IGZ1bmMoaW50IGEsaW50IGIsaW50IGMsaW50IHMpCiAgICAgICAgewogICAgICAgICAgICB2ZWN0b3IgPGludD4gdj17YSxiLGN9OwogICAgICAgICAgICBzb3J0KHYuYmVnaW4oKSx2LmVuZCgpKTsKICAgICAgICAgICAgaWYodlsyXTxzKQogICAgICAgICAgICAgICAgcmV0dXJuIGRwW3ZbMF1dW3ZbMV1dW3ZbMl1dPTA7CiAgICAgICAgICAgIGlmKGRwW3ZbMF1dW3ZbMV1dW3ZbMl1dIT0tMSkKICAgICAgICAgICAgICAgIHJldHVybiBkcFt2WzBdXVt2WzFdXVt2WzJdXTsKICAgICAgICAgICAgaW50IGFucz12WzBdKnZbMV07CiAgICAgICAgICAgIGZvcihpbnQgaT0xO2k8dlswXTtpKyspCiAgICAgICAgICAgICAgICBhbnM9bWF4KGFucyxmdW5jKGksdlsxXSx2WzJdLHMpK2Z1bmModlswXS1pLHZbMV0sdlsyXSxzKSk7CiAgICAgICAgICAgIGZvcihpbnQgaT0xO2k8dlsxXTtpKyspCiAgICAgICAgICAgICAgICBhbnM9bWF4KGFucyxmdW5jKHZbMF0saSx2WzJdLHMpK2Z1bmModlswXSx2WzFdLWksdlsyXSxzKSk7CiAgICAgICAgICAgIGZvcihpbnQgaT0xO2k8dlsyXTtpKyspCiAgICAgICAgICAgICAgICBhbnM9bWF4KGFucyxmdW5jKHZbMF0sdlsxXSxpLHMpK2Z1bmModlswXSx2WzFdLHZbMl0taSxzKSk7CiAgICAgICAgICAgIHJldHVybiBkcFt2WzBdXVt2WzFdXVt2WzJdXT1hbnM7CgoKICAgICAgICB9CgogICAgICAgIGludCB0b3RhbEFyZWEoaW50IEEsIGludCBCLCBpbnQgQywgaW50IFMpCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGk9MDtpPDEwMTtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8MTAxO2orKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGs9MDtrPDEwMTtrKyspCiAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2tdPS0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZlY3RvciA8aW50PiB2PXtBLEIsQ307CiAgICAgICAgICAgIHNvcnQodi5iZWdpbigpLHYuZW5kKCkpOwogICAgICAgICAgICByZXR1cm4gZnVuYyh2WzBdLHZbMV0sdlsyXSxTKTsKICAgICAgICB9Cn07Cg==