#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e12 + 47, MAXN = 1e5 + 47;
long long n, mid;
vector<long long> val, cnt(3, 0), kek;
long long zap(long long i, long long ind) {
  long long pr = val[i];
  i++, cnt[ind]++;
  for (; i <= (n - 1) / 2; ++i) {
    if (val[i] != pr) return i;
    cnt[ind]++;
  }
  return i;
}
void solve() {
  cin >> n;
  val.resize(n);
  cnt[0] = cnt[1] = cnt[2] = 0;
  for (long long i = 0; i < n; i++) cin >> val[i];
  kek.resize(0);
  long long pr = val[0], c = 1;
  val.push_back(-inf);
  for (long long i = 1; i < n + 1; i++) {
    if (val[i] == pr)
      c++;
    else {
      kek.push_back(c);
      c = 1, pr = val[i];
    }
  }
  mid = n / 2;
  cnt[0] = kek[0];
  long long ind = 1;
  for (; ind < (long long)(kek.size()); ++ind) {
    if (kek[ind] + cnt[1] + cnt[0] > mid) break;
    cnt[1] += kek[ind];
    if (cnt[1] > cnt[0]) break;
  }
  for (; ind < (long long)(kek.size()); ++ind) {
    if (kek[ind] + cnt[0] + cnt[1] + cnt[2] > mid) break;
    cnt[2] += kek[ind];
  }
  if (cnt[1] > cnt[0] && cnt[2] > cnt[1])
    cout << cnt[0] << " " << cnt[1] << " " << cnt[2] << endl;
  else
    cout << 0 << " " << 0 << " " << 0 << endl;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long t = 1;
  cin >> t;
  while (t--) {
    solve();
  }
}
