var v,x:array[1..4] of byte; max:word; f:text; procedure afisare; var i:byte; suma:integer; begin suma:=0; suma:=v[1]*v[2]+v[3]*v[4]; if suma>max then max:=suma; end; function valid (k:byte):boolean; var i:byte; begin valid:=true; for i:=1 to k-1 do if v[i]=v[k] then valid:=false; end; procedure bak (k:byte); var i:byte; begin for i:=1 to 4 do begin v[k]:=x[i]; if valid(k) then if k=4 then afisare else bak(k+1); end; end; begin assign(f,'nr.in'); reset(f); max:=0; readln(x[1],x[2],x[3],x[4]); bak(1); writeln(max); close(f); end.