#include <bits/stdc++.h>
using namespace std;
int Data[400100];
int T, N;
int main() {
  scanf("%d", &T);
  while (T--) {
    int G = 1, S = 0, B = 0;
    scanf("%d", &N);
    for (register int i = 1; i <= N; ++i) scanf("%d", &Data[i]);
    if (N < 10) {
      printf("0 0 0\n");
      continue;
    }
    int pos = 2;
    while (pos <= N / 2 && Data[pos] == Data[pos - 1]) {
      ++G;
      ++pos;
    }
    if (Data[pos] == Data[pos - 1]) {
      printf("0 0 0\n");
      continue;
    }
    while (pos <= N / 2 && S <= G) {
      ++S;
      ++pos;
    }
    while (pos <= N / 2 && Data[pos] == Data[pos - 1]) {
      ++S;
      ++pos;
    }
    if (S <= G) {
      printf("0 0 0\n");
      continue;
    }
    while (pos <= N / 2 && B <= G) {
      ++B;
      ++pos;
    }
    while (pos <= N / 2 && Data[pos] != Data[N / 2 + 1]) {
      ++B;
      ++pos;
    }
    if (B <= G) {
      printf("0 0 0\n");
      continue;
    }
    if (G + S + B > N / 2) {
      printf("0 0 0\n");
      continue;
    }
    if (Data[G] == Data[G + 1]) {
      printf("0 0 0\n");
      continue;
    }
    if (Data[G + S] == Data[G + S + 1]) {
      printf("0 0 0\n");
      continue;
    }
    if (Data[G + S + B] == Data[G + S + B + 1]) {
      printf("0 0 0\n");
      continue;
    }
    if (G == 0 || S == 0 || B == 0) {
      printf("0 0 0\n");
      continue;
    }
    printf("%d %d %d\n", G, S, B);
  }
  return 0;
}
