import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    }
} Main public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    } main {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    } Scanner sc = new Scanner(System .in); sc new Scanner(System .in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc long max1 = a>b?a:b; max1 a>b?a:b a>b a b a b long min1 = a<=b?a:b; min1 a<=b?a:b a<=b a b a b int c = sc.nextInt(); c sc.nextInt() sc.nextInt sc int d = sc.nextInt(); d sc.nextInt() sc.nextInt sc long max2 = c>d?c:d; max2 c>d?c:d c>d c d c d long min2 = c<=d?c:d; min2 c<=d?c:d c<=d c d c d long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2); max Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2) Math.max Math Math.max(Math.max(max1*max2,min1*min2),max1*min2) Math.max Math Math.max(max1*max2,min1*min2) Math.max Math max1*max2 max1 max2 min1*min2 min1 min2 max1*min2 max1 min2 min1*max2 min1 max2 System.out.println(max) System.out.println System.out System System.out max String args[] args public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    }
} public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    }
} Main
import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System .in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        long max1 = a>b?a:b;
        long min1 = a<=b?a:b;
        int c = sc.nextInt();
        int d = sc.nextInt();
        long max2 = c>d?c:d;
        long min2 = c<=d?c:d;
        long max = Math.max(Math.max(Math.max(max1*max2,min1*min2),max1*min2),min1*max2);
        System.out.println(max);
    }
}