import java.util.*;
import java.io.*;
public class MyClass {
    public static void main(String args[]) {
     FastReader sc = new FastReader();
     int t = sc.nextInt();
     while(t-->0){
     int n = sc.nextInt();
     LinkedHashMap<Integer,Integer> hs = new LinkedHashMap<>();
     for(int i=0;i<n;i++){
         int x = sc.nextInt();
         if(hs.get(x)==null){
             hs.put(x,1);
         }
         else{
             hs.put(x,hs.get(x)+1);
         }
     }
     long g=0;
     long s=0;
     long b=0;
     for(Integer num : hs.keySet()){
        int x = hs.get(num);
        if(g==0){
            g = x;
        }
        else if(s<=g && b==0){
            s += x;
        }
        else if(b<=g){
            b += x;
        }
        else if((g+s+b) < n/2){
            b += x;
            if((g+s+b) > n/2){
                b -= x;
                break;
            }
            else if((g+s+b)==n/2){
                break;
            }
        }
        
     }
        if((g+s+b)<=n/2){
            System.out.println(g+" "+s+" "+b);
        }
        else{
            System.out.println(0+" "+0+" "+0);
        }
    
     }
     
    }
}
class FastReader 
	{ 
		BufferedReader br; 
		StringTokenizer st; 
 
		public FastReader() 
		{ 
			br = new BufferedReader(new
					InputStreamReader(System.in)); 
		} 
 
		String next() 
		{ 
			while (st == null || !st.hasMoreElements()) 
			{ 
				try
				{ 
					st = new StringTokenizer(br.readLine()); 
				} 
				catch (IOException e) 
				{ 
					e.printStackTrace(); 
				} 
			} 
			return st.nextToken(); 
		} 
 
		int nextInt() 
		{ 
			return Integer.parseInt(next()); 
		} 
 
		long nextLong() 
		{ 
			return Long.parseLong(next()); 
		} 
 
		double nextDouble() 
		{ 
			return Double.parseDouble(next()); 
		} 
 
		String nextLine() 
		{ 
			String str = ""; 
			try
			{ 
				str = br.readLine(); 
			} 
			catch (IOException e) 
			{ 
				e.printStackTrace(); 
			} 
			return str; 
		} 
	}



	 	 