#include <bits/stdc++.h>
using namespace std;
int k;
long long p[1000];
int a[1000];
int b[1000];
long long stp[100][100];
long long f1, f2, f3, mn, a1, a2, a3, n;
void bct1(int f) {
  if (f == 0) {
    f3 = n / (f1 * f2);
    if (f1 * f2 + f2 * f3 + f1 * f3 <= mn) {
      mn = f1 * f2 + f2 * f3 + f1 * f3;
      a1 = f1;
      a2 = f2;
      a3 = f3;
    }
    return;
  }
  long long ff0 = f2;
  for (int i = b[f - 1]; i >= 0; i--) {
    f2 = ff0 * stp[f - 1][i];
    if ((long double)f2 * f2 * f1 < n + 1) {
      bct1(f - 1);
    }
  }
  f2 = ff0;
}
void bct(int f) {
  if (f == 0) {
    if (f1 * (2 * sqrt(n / f1)) + n / f1 > mn + 1) return;
    bct1(k);
    return;
  }
  long long ff0 = f1;
  for (int i = a[f - 1]; i >= 0; i--) {
    b[f - 1] = a[f - 1] - i;
    f1 = ff0 * stp[f - 1][i];
    if ((long double)f1 * f1 * f1 < n + 1) {
      bct(f - 1);
    }
  }
  f1 = ff0;
}
int main() {
  int T;
  scanf("%d", &T);
  while (T-- > 0) {
    cin >> k;
    n = 1;
    for (int i = 0; i < k; i++) {
      cin >> p[i] >> a[i];
      stp[i][0] = 1;
      for (int j = 1; j <= a[i]; j++) {
        stp[i][j] = stp[i][j - 1] * p[i];
      }
      n = n * stp[i][a[i]];
    }
    f1 = 1;
    f2 = 1;
    f3 = 1;
    mn = (long long)3 * 1e18;
    bct(k);
    cout << mn * 2 << " " << a1 << " " << a2 << " " << a3 << endl;
  }
  return 0;
}
