
import java.util.Map.Entry;
import java.lang.reflect.Method;
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
import java.util.ArrayList;

//import org.w3c.dom.css.Counter;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    }
} import java.util.Map.Entry; Entry java.util.Map import java.lang.reflect.Method; Method java.lang.reflect import java.util.*; util.* java import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayDeque; ArrayDeque java.util import java.util.Arrays; Arrays java.util import java.util.Deque; Deque java.util import java.util.ArrayList; ArrayList java.util public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    }
} Main public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    } main {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long a = Integer.parseInt(sc.next()); a Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long b = Integer.parseInt(sc.next()); b Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long c = Integer.parseInt(sc.next()); c Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long d = Integer.parseInt(sc.next()); d Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long ans = a*c; ans a*c a c if(ans <b*c){
           ans =b*c;
        } ans <b*c ans b*c b c {
           ans =b*c;
        } ans =b*c ans b*c b c if(ans <b*d){
            ans =b*d;
         } ans <b*d ans b*d b d {
            ans =b*d;
         } ans =b*d ans b*d b d if(ans <a*d){
            ans =a*d;
         } ans <a*d ans a*d a d {
            ans =a*d;
         } ans =a*d ans a*d a d System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    }
} public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    }
} Main

import java.util.Map.Entry;
import java.lang.reflect.Method;
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
import java.util.ArrayList;

//import org.w3c.dom.css.Counter;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        //String S = sc.next();
        long a = Integer.parseInt(sc.next());
        long b = Integer.parseInt(sc.next());
        long c = Integer.parseInt(sc.next());
        long d = Integer.parseInt(sc.next());
        long ans = a*c;
        if(ans <b*c){
           ans =b*c;
        }
        if(ans <b*d){
            ans =b*d;
         }
         if(ans <a*d){
            ans =a*d;
         }
         System.out.println(ans);

    }
}