output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      a b c d
attempt: a,b,c,d=map(int,input().split())
  v1=0
  v2=0
  flag=0
  if a==0 and b!=0:
    flag=1
    v1=b
  elif a!=0 and b==0:
    flag=1
    v1=a
  if c==0 and d!=0:
    flag=1
    v2=d
  elif c!=0 and d==0:
    flag=1
    v2=c
  
  if c<0 and d<0 and a>0 and b>0:
    flag=1
    v1=a
    v2=d
  
  if a<0 and b<0 and c>0 and d>0:
    flag=1
    v1=b
    v2=c
  
  if c<0 and d>0 and a<0 and b>0:
    flag=1
    v1=max(abs(a),b)
    v2=max(abs(c),d)
  
  if d<0 and c>0 and b<0 and a>0:
    flag=1
    v1=max(abs(b),a)
    v2=max(abs(d),c)
  
  if flag==0:
    if d<0 or c<0 or a<0 or b<0:
      v1=max(abs(a),abs(b))
      v2=max(abs(c),abs(d))
      if v1==abs(a) and a<0:
        flag=-1
      elif v1==abs(b) and b<0:
        flag=-1 
      elif v2==abs(c) and c<0:
        flag=-1  
      elif v2==abs(d) and d<0:
        flag=-1 
      else:
        flag=1
  
  
  
  if (a>0 and b>0 and c>0 and d>0) or (a<0 and b<0 and c<0 and d<0):
    flag=1
    v1=b
    v2=d
  print(v1*v2*flag)
  
  
  
problem_description: Statement
  
  Given are integers a,b,c and d. If x and y are integers and a \leq x \leq b
  and c\leq y \leq d hold, what is the maximum possible value of x \times y?
samples: [{"input": "1 2 1 1", "output": "2\n    \n\nIf x = 1 and y = 1 then x \\times y = 1. If x = 2 and y = 1 then x \\times y =\n2. Therefore, the answer is 2.\n\n* * *"}, {"input": "3 5 -4 -2", "output": "-6\n    \n\nThe answer can be negative.\n\n* * *"}, {"input": "-1000000000 0 -1000000000 0", "output": "1000000000000000000"}]