main = do
  li <- getLine
  let [a,b,c,d] = map read $ words li
  print $ compute a b c d

compute :: Int -> Int -> Int -> Int -> Int
compute a b c d = maximum [a*c,a*d,b*c,b*d]
--ごちゃごちゃ場合分けするより、4つの端を全てやってみるのが早いか。
