#include <stdio.h>

int main() {
    int n;
    long long min1,min2,max1,max2,max3;
    int a[100005] = {0};
    int i;
    while (scanf("%d\n", &n) != EOF) { // 注意 while 处理多个 case
      max1 = max2 = max3 = 0;
      min1 = min2 =0;
      for (i=0; i < n; i++) {
        scanf("%d ", &a[i]);
        if (a[i] > max1) {
          max3 = max2;
          max2 = max1;
          max1 = a[i];
        } else if (a[i] > max2) {
          max3 = max2;
          max2 = a[i];
        } else if (a[i] > max3) {
          max3 = a[i];
        } else if (a[i] < min1) {
          min2 = min1;
          min1 = a[i];
        } else if (a[i] < min2) {
          min2 = a[i];
        }
      }
      // printf ("%lld %lld %lld \n", max1, max2,max3);
      // printf ("%lld %lld \n", min1, min2);
      // printf ("%lld  \n", max1 * max2* max3);
      // printf ("%lld  \n", min1 * min2 * max1);
      printf("%lld\n", max1 * max2* max3 > min1 * min2 * max1 ? max1 * max2* max3 : min1 * min2 * max1);
    }
    return 0;
}