import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  }
} import java.util.*; util.* java import java.io.*; io.* java import java.lang.*; lang.* java public class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  }
} Main public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  } main {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) PrintWriter out = new PrintWriter(System.out); out new PrintWriter(System.out) long a = Integer.parseInt(scan.next()); a Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan long b = Integer.parseInt(scan.next()); b Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan long c = Integer.parseInt(scan.next()); c Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan long d = Integer.parseInt(scan.next()); d Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan long[] respondents = new long[4]; respondents new long[4] 4 respondents[0] = a * c respondents[0] respondents 0 a * c a c respondents[1] = a * d respondents[1] respondents 1 a * d a d respondents[2] = b * c respondents[2] respondents 2 b * c b c respondents[3] = b * d respondents[3] respondents 3 b * d b d long max = respondents[0]; max respondents[0] respondents 0 for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    } int i = 1; int i = 1; i 1 i < respondents.length i respondents.length respondents respondents.length i++ i++ i {
      max = Math.max(max, respondents[i]);
    } {
      max = Math.max(max, respondents[i]);
    } max = Math.max(max, respondents[i]) max Math.max(max, respondents[i]) Math.max Math max respondents[i] respondents i out.println(max) out.println out max out.flush() out.flush out String[] args args public class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  }
} public class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  }
} Main
import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    PrintWriter out = new PrintWriter(System.out);
    long a = Integer.parseInt(scan.next());
    long b = Integer.parseInt(scan.next());
    long c = Integer.parseInt(scan.next());
    long d = Integer.parseInt(scan.next());

    long[] respondents = new long[4];
    respondents[0] = a * c;
    respondents[1] = a * d;
    respondents[2] = b * c;
    respondents[3] = b * d;
    long max = respondents[0];
    for (int i = 1; i < respondents.length; i++) {
      max = Math.max(max, respondents[i]);
    }
    out.println(max);
    out.flush();
  }
}
