import java.util.*;

class Main{
  public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    Long[] a=new Long[2];
    a[0]=sc.nextLong();
    a[1]=sc.nextLong();
    Long[] c=new Long[2];
    c[0]=sc.nextLong();
    c[1]=sc.nextLong();
    Long max=Long.MIN_VALUE;
    for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    }
    System.out.println(max);
  }
} import java.util.*; util.* java class Main{
  public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    Long[] a=new Long[2];
    a[0]=sc.nextLong();
    a[1]=sc.nextLong();
    Long[] c=new Long[2];
    c[0]=sc.nextLong();
    c[1]=sc.nextLong();
    Long max=Long.MIN_VALUE;
    for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    }
    System.out.println(max);
  }
} Main public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    Long[] a=new Long[2];
    a[0]=sc.nextLong();
    a[1]=sc.nextLong();
    Long[] c=new Long[2];
    c[0]=sc.nextLong();
    c[1]=sc.nextLong();
    Long max=Long.MIN_VALUE;
    for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    }
    System.out.println(max);
  } main {
    Scanner sc=new Scanner(System.in);
    Long[] a=new Long[2];
    a[0]=sc.nextLong();
    a[1]=sc.nextLong();
    Long[] c=new Long[2];
    c[0]=sc.nextLong();
    c[1]=sc.nextLong();
    Long max=Long.MIN_VALUE;
    for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    }
    System.out.println(max);
  } Scanner sc=new Scanner(System.in); sc new Scanner(System.in) Long[] a=new Long[2]; a new Long[2] 2 a[0]=sc.nextLong() a[0] a 0 sc.nextLong() sc.nextLong sc a[1]=sc.nextLong() a[1] a 1 sc.nextLong() sc.nextLong sc Long[] c=new Long[2]; c new Long[2] 2 c[0]=sc.nextLong() c[0] c 0 sc.nextLong() sc.nextLong sc c[1]=sc.nextLong() c[1] c 1 sc.nextLong() sc.nextLong sc Long max=Long.MIN_VALUE; max Long.MIN_VALUE Long Long.MIN_VALUE for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    } int i=0; int i=0; i 0 i<2 i 2 i++ i++ i {
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    } {
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    } for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      } int j=0; int j=0; j 0 j<2 j 2 j++ j++ j {
        if(max<a[i]*c[j])max=a[i]*c[j];
      } {
        if(max<a[i]*c[j])max=a[i]*c[j];
      } if(max<a[i]*c[j])max=a[i]*c[j]; max<a[i]*c[j] max a[i]*c[j] a[i] a i c[j] c j max=a[i]*c[j] max a[i]*c[j] a[i] a i c[j] c j System.out.println(max) System.out.println System.out System System.out max String[] args args
import java.util.*;

class Main{
  public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    Long[] a=new Long[2];
    a[0]=sc.nextLong();
    a[1]=sc.nextLong();
    Long[] c=new Long[2];
    c[0]=sc.nextLong();
    c[1]=sc.nextLong();
    Long max=Long.MIN_VALUE;
    for(int i=0;i<2;i++){
      for(int j=0;j<2;j++){
        if(max<a[i]*c[j])max=a[i]*c[j];
      }
    }
    System.out.println(max);
  }
}