import 'dart:io';
import "dart:math";

void main() {
  List abcd = stdin.readLineSync().split(" ").map((x) => int.parse(x)).toList();
  int xy=abcd[0]*abcd[2];
  int xySign=xy.sign;
  List xyxy=[];
  if((abcd[0].sign==-1 && abcd[1].sign==-1)&&(abcd[2].sign==-1 && abcd[3].sign==-1)){
    print(abcd[0]*abcd[2]); //1
  }else if((abcd[0].sign==1 && abcd[1].sign==1)&&(abcd[2].sign==1 && abcd[3].sign==1)){
    print(abcd[1]*abcd[3]);//2
  } else if((abcd[0].sign==-1 && abcd[1].sign==1)&&(abcd[2].sign==-1 && abcd[3].sign==-1)){
    print(abcd[0]*abcd[2]);//3
  } else if((abcd[0].sign==-1 && abcd[1].sign==-1)&&(abcd[2].sign==-1 && abcd[3].sign==1)){
    print(abcd[0]*abcd[3]);//4
  }else if((abcd[0].sign==1 && abcd[1].sign==1)&&(abcd[2].sign==-1 && abcd[3].sign==1)){
    print(abcd[1]*abcd[3]);//5
  }
  else if((abcd[0].sign==-1 && abcd[1].sign==1)&&(abcd[2].sign==1 && abcd[3].sign==1)){
    print(abcd[1]*abcd[3]);//6
  }else if((abcd[0].sign==-1 && abcd[1].sign==-1)&&(abcd[2].sign==1 && abcd[3].sign==1)){
    print(abcd[1]*abcd[2]);//7
  }else if((abcd[0].sign==1 && abcd[1].sign==1)&&(abcd[2].sign==-1 && abcd[3].sign==-1)){
    print(abcd[0]*abcd[3]);//8
  }else{
    xyxy=[abcd[0]*abcd[2],abcd[0]*abcd[3],abcd[1]*abcd[2],abcd[1]*abcd[3]];
    List sortXy=xyxy..sort((b, a) => a.compareTo(b));
    print(sortXy[0]);
  }
}