#include <bits/stdc++.h>
using namespace std;
priority_queue<int, vector<int>, greater<int> > Q;
const int INF = 1e9 + 9;
long int pow(long int a, long int b, int m) {
  a %= m;
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = res * a % m;
    a = a * a % m;
    b >>= 1;
  }
  return res;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    int ar[n];
    int flag = 0;
    for (int i = 0; i < n; i++) {
      cin >> ar[i];
    }
    int x = n / 2;
    int g = 0, b = 0, s = 0;
    int p = ar[0];
    for (int i = 0; i < x - 1; i++) {
      while (ar[i] == p) {
        g++;
        i++;
      }
      if (x % 3 == 1 and g >= x / 3) {
        cout << 0 << " " << 0 << " " << 0 << endl;
        flag = 1;
        break;
      } else if (x % 3 == 2 and g > x / 3) {
        cout << 0 << " " << 0 << " " << 0 << endl;
        flag = 1;
        break;
      }
      int y = ar[i];
      while (ar[i] == y) {
        s++;
        i++;
      }
      if (s == 1) {
        while (s <= g) {
          s++;
          i++;
        }
        int q = ar[i];
        while (ar[i] == q) {
          s++;
          i++;
        }
      }
      int l = ar[x];
      int k = x - 1;
      while (ar[k] == l) {
        k--;
      }
      b = k + 1 - i;
      break;
    }
    if (flag == 0) {
      if (g <= 0 or s <= 0 or b <= 0 or s <= g or b <= g) {
        cout << 0 << " " << 0 << " " << 0 << endl;
      } else {
        cout << g << " " << s << " " << b << endl;
      }
    }
  }
}
