import java.util.*;

public class Main {

    public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    }
} import java.util.*; util.* java public class Main {

    public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    }
} Main public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    } main {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    } Scanner sc = new Scanner(System.in); sc 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 sc.close() sc.close sc long mlta = Math.max(a * c, a * d); mlta Math.max(a * c, a * d) Math.max Math a * c a c a * d a d long mltb = Math.max(b * c, b * d); mltb Math.max(b * c, b * d) Math.max Math b * c b c b * d b d long result = Math.max(mlta, mltb); result Math.max(mlta, mltb) Math.max Math mlta mltb System.out.println(result) System.out.println System.out System System.out result String args[] args public class Main {

    public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    }
} public class Main {

    public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    }
} Main
import java.util.*;

public class Main {

    public static void main(String args[]) {

        // 入力
        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());
        sc.close();

        // 主処理
        long mlta = Math.max(a * c, a * d);
        long mltb = Math.max(b * c, b * d);
        long result = Math.max(mlta, mltb);

        // 出力
        System.out.println(result);
    }
}
