
import java.io.InputStream;
import java.io.PrintStream;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    }

    static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    }
} import java.io.InputStream; InputStream java.io import java.io.PrintStream; PrintStream java.io import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    }

    static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    }
} Main public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    } main {
        solve(System.in, System.out);
    } solve(System.in, System.out) solve System.in System System.in System.out System System.out String[] args args static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    } solve {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    } Scanner scan = new Scanner(is); scan new Scanner(is) long a = scan.nextInt(); a scan.nextInt() scan.nextInt scan long b = scan.nextInt(); b scan.nextInt() scan.nextInt scan long c = scan.nextInt(); c scan.nextInt() scan.nextInt scan long d = scan.nextInt(); d scan.nextInt() scan.nextInt scan long bc = b*c; bc b*c b c long bd = b*d; bd b*d b d long ac = a*c; ac a*c a c long ad = a*d; ad a*d a d long maxb = Math.max(bc, bd); maxb Math.max(bc, bd) Math.max Math bc bd long maxa = Math.max(ac, ad); maxa Math.max(ac, ad) Math.max Math ac ad os.println(Math.max(maxa,maxb)) os.println os Math.max(maxa,maxb) Math.max Math maxa maxb InputStream is is PrintStream os os public class Main {
    public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    }

    static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    }

    static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    }
} Main

import java.io.InputStream;
import java.io.PrintStream;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        solve(System.in, System.out);
    }

    static void solve(InputStream is, PrintStream os) {
        // Your code here!
        Scanner scan = new Scanner(is);
        long a = scan.nextInt();
        long b = scan.nextInt();
        long c = scan.nextInt();
        long d = scan.nextInt();

        long bc = b*c;
        long bd = b*d;
        long ac = a*c;
        long ad = a*d;

        long maxb = Math.max(bc, bd);
        long maxa = Math.max(ac, ad);


        os.println(Math.max(maxa,maxb));
    }
}