import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	}	
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	}	
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	} main {
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long a = sc.nextLong(); a sc.nextLong() sc.nextLong sc long b = sc.nextLong(); b sc.nextLong() sc.nextLong sc long c = sc.nextLong(); c sc.nextLong() sc.nextLong sc long d = sc.nextLong(); d sc.nextLong() sc.nextLong sc long ac=a*c; ac a*c a c long ad=a*d; ad a*d a d long bc=b*c; bc b*c b c long bd=b*d; bd b*d b d if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			} ac>ad ac ad {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			} if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				} bc>bd bc bd {
					System.out.println(ac>bc?ac:bc);					
				} System.out.println(ac>bc?ac:bc) System.out.println System.out System System.out ac>bc?ac:bc ac>bc ac bc ac bc {
					System.out.println(ac>bd?ac:bd);					
				} System.out.println(ac>bd?ac:bd) System.out.println System.out System System.out ac>bd?ac:bd ac>bd ac bd ac bd {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			} if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				} bc>bd bc bd {
					System.out.println(ad>bc?ad:bc);					
				} System.out.println(ad>bc?ad:bc) System.out.println System.out System System.out ad>bc?ad:bc ad>bc ad bc ad bc {
					System.out.println(ad>bd?ad:bd);					
				} System.out.println(ad>bd?ad:bd) System.out.println System.out System System.out ad>bd?ad:bd ad>bd ad bd ad bd String[] args args public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	}	
} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	}	
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
			
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			long d = sc.nextLong();

			long ac=a*c;
			long ad=a*d;
			long bc=b*c;
			long bd=b*d;
			if(ac>ad) {
				if(bc>bd) {
					System.out.println(ac>bc?ac:bc);					
				}else {
					System.out.println(ac>bd?ac:bd);					
				}
			}else {
				if(bc>bd) {
					System.out.println(ad>bc?ad:bc);					
				}else {
					System.out.println(ad>bd?ad:bd);					
				}				
			}
	}	
}