import java.util.Scanner;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    }
} import java.util.Scanner; Scanner java.util public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    }
} Main static Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    } main {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    } 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 w = d * b; w d * b d b long x = c * b; x c * b c b long y = a * c; y a * c a c long z = a * d; z a * d a d long ans = Math.max(Math.max(w, x), Math.max(y, z)); ans Math.max(Math.max(w, x), Math.max(y, z)) Math.max Math Math.max(w, x) Math.max Math w x Math.max(y, z) Math.max Math y z System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    }
} public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    }
} Main
import java.util.Scanner;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        long a = sc.nextLong();
        long b = sc.nextLong();
        long c = sc.nextLong();
        long d = sc.nextLong();
        
        long w = d * b;
        long x = c * b;
        long y = a * c;
        long z = a * d;
        
        long ans = Math.max(Math.max(w, x), Math.max(y, z));
        System.out.println(ans);

    }
}