#include <bits/stdc++.h>
long long int h[100005], l;
int comp_h(long long int a, long long int b) {
  if (h[a] > h[b])
    return 1;
  else
    return -1;
}
void swap_h(long long int a, long long int b) {
  long long int f = h[a];
  h[a] = h[b];
  h[b] = f;
  return;
}
void push(long long int ne) {
  h[l] = ne;
  long long int p = l;
  l++;
  for (; p > 0; p = (p - 1) / 2)
    if (comp_h((p - 1) / 2, p) > 0) swap_h((p - 1) / 2, p);
  return;
}
long long int pop() {
  l--;
  swap_h(0, l);
  long long int p = 0;
  for (;;) {
    if (2 * p + 2 < l) {
      if (comp_h(2 * p + 1, 2 * p + 2) > 0) {
        if (comp_h(p, 2 * p + 2) > 0) swap_h(p, 2 * p + 2);
        p = 2 * p + 2;
      } else {
        if (comp_h(p, 2 * p + 1) > 0) swap_h(p, 2 * p + 1);
        p = 2 * p + 1;
      }
    } else if (2 * p + 1 < l) {
      if (comp_h(p, 2 * p + 1) > 0) swap_h(p, 2 * p + 1);
      p = 2 * p + 1;
    } else
      break;
  }
  return h[l];
}
int main() {
  int t;
  scanf("%d", &t);
  int n;
  int i;
  long long int a[100005];
  long long int ans;
  for (; t > 0; t--) {
    scanf("%d", &n);
    for (i = 0; i < n; i++) scanf("%lld", &a[i]);
    l = 0;
    for (i = 0; i < n; i++) push(a[i]);
    for (i = 0; i < n; i++) a[i] = pop();
    ans = a[n - 1] * a[n - 2] * a[n - 3] * a[n - 4] * a[n - 5];
    if (ans < a[0] * a[1] * a[n - 1] * a[n - 2] * a[n - 3])
      ans = a[0] * a[1] * a[n - 1] * a[n - 2] * a[n - 3];
    if (ans < a[0] * a[1] * a[2] * a[3] * a[n - 1])
      ans = a[0] * a[1] * a[2] * a[3] * a[n - 1];
    printf("%lld\n", ans);
  }
  return 0;
}
