import java.util.Scanner;

public class Main {
	static Long num;
	public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	}		
} import java.util.Scanner; Scanner java.util public class Main {
	static Long num;
	public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	}		
} Main static Long num; num public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	} main {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	} try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		} {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		} Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) new Scanner(System.in) Long a = Long.parseLong(sc.next()); a Long.parseLong(sc.next()) Long.parseLong Long sc.next() sc.next sc Long b = Long.parseLong(sc.next()); b Long.parseLong(sc.next()) Long.parseLong Long sc.next() sc.next sc Long c = Long.parseLong(sc.next()); c Long.parseLong(sc.next()) Long.parseLong Long sc.next() sc.next sc Long d = Long.parseLong(sc.next()); d Long.parseLong(sc.next()) Long.parseLong Long sc.next() sc.next sc num = a*c num a*c a c num = Math.max(num,a*d) num Math.max(num,a*d) Math.max Math num a*d a d num = Math.max(num,b*c) num Math.max(num,b*c) Math.max Math num b*c b c num = Math.max(num,b*d) num Math.max(num,b*d) Math.max Math num b*d b d Long anser = num; anser num System.out.println(anser) System.out.println System.out System System.out anser String[] args args public class Main {
	static Long num;
	public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	}		
} public class Main {
	static Long num;
	public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	}		
} Main
import java.util.Scanner;

public class Main {
	static Long num;
	public static void main(String[] args) {


		try (Scanner sc = new Scanner(System.in)) {
			Long a = Long.parseLong(sc.next());
			Long b = Long.parseLong(sc.next());
			Long c = Long.parseLong(sc.next());
			Long d = Long.parseLong(sc.next());
			
			
			num = a*c;
			num = Math.max(num,a*d);
			num = Math.max(num,b*c);
			num = Math.max(num,b*d);
			Long anser = num;
			System.out.println(anser);
		}
	}		
}