import java.util.Scanner;

public class Main {

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		}
} import java.util.Scanner; Scanner java.util public class Main {

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		}
} Main public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		} main {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		} try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			} catch (Exception e) {
				// TODO: handle exception
			} Exception e {
				// TODO: handle exception
			} {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) 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 ans = Math.max(a*c, b*d); ans Math.max(a*c, b*d) Math.max Math a*c a c b*d b d ans = Math.max(ans, a*d) ans Math.max(ans, a*d) Math.max Math ans a*d a d ans = Math.max(ans, b*c) ans Math.max(ans, b*c) Math.max Math ans b*c b c System.out.println(String.valueOf(ans)) System.out.println System.out System System.out String.valueOf(ans) String.valueOf String ans String[] args args public class Main {

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		}
} public class Main {

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		}
} Main
import java.util.Scanner;

public class Main {

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			try (Scanner sc = new Scanner(System.in)) {
				long a = sc.nextLong();
				long b = sc.nextLong();
				long c = sc.nextLong();
				long d = sc.nextLong();

				long ans = Math.max(a*c, b*d);
				ans = Math.max(ans, a*d);
				ans = Math.max(ans, b*c);

				
				System.out.println(String.valueOf(ans));

			} catch (Exception e) {
				// TODO: handle exception
			}
		}
}