#include <iostream>

using namespace std;
int x[5], k, n, v[5], i, max1=0, sum;
void afisare()
    {
        sum=v[x[1]]*v[x[2]]+v[x[3]]*v[x[4]];
        if(sum>max1) max1=sum;
    }
int amsuccesor(int k)
    {
        int as;
        if(x[k]<4)
            {
                as=1;
                x[k]++;
            }
        else as=0;
        return as;
    }

int estevalid(int k)
    {
        int ev=1, i;
        for(i=1; i<k; ++i)
            if(x[i]==x[k]) ev=0;
        return ev;
    }

void back(int k)
    {
        int as, ev;
        x[k]=0;
        while(k>0)
            {
                do
                    {
                        as=amsuccesor(k);
                        ev=estevalid(k);
                    }
                while(as&&!ev);
                if(as)
                    {
                        if(k==4) afisare();
                        else
                            {
                                k++;
                                x[k]=0;
                            }
                    }
                else k--;
            }
    }

int main()
{
   for(i=1; i<=4; ++i)
        {
            cin>>sum;
            v[i]=sum;
        }
   back(1);
    cout<<max1;
    return 0;
}