function Main(arg) {
  let a = BigInt(arg.trim().split(' ')[0]);
  let b = BigInt(arg.trim().split(' ')[1]);
  let c = BigInt(arg.trim().split(' ')[2]);
  let d = BigInt(arg.trim().split(' ')[3]);
  let list = [a*c, a*d, b*c, b*d];

  if(a < 0n && 0n < b){
    list.push(0n);
  }
  if(c < 0n && 0n < d){
    list.push(0n);
  }
  console.log(Math.max(...(list.map(arg => Number(arg)))));
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));