#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;
}