Tired of boring office work, Denis decided to open a fast food restaurant.

On the first day he made a portions of dumplings, b portions of cranberry juice and c pancakes with condensed milk.

The peculiarity of Denis's restaurant is the procedure of ordering food. For each visitor Denis himself chooses a set of dishes that this visitor will receive. When doing so, Denis is guided by the following rules:

  * every visitor should receive at least one dish (dumplings, cranberry juice, pancakes with condensed milk are all considered to be dishes); 
  * each visitor should receive no more than one portion of dumplings, no more than one portion of cranberry juice and no more than one pancake with condensed milk; 
  * all visitors should receive different sets of dishes. 



What is the maximum number of visitors Denis can feed?

Input

The first line contains an integer t (1 ≤ t ≤ 500) — the number of test cases to solve.

Each of the remaining t lines contains integers a, b and c (0 ≤ a, b, c ≤ 10) — the number of portions of dumplings, the number of portions of cranberry juice and the number of condensed milk pancakes Denis made.

Output

For each test case print a single integer — the maximum number of visitors Denis can feed.

Example

Input

7
1 2 1
0 0 0
9 1 7
2 2 3
2 3 2
3 2 2
4 4 4


Output

3
0
4
5
5
5
7

Note

In the first test case of the example, Denis can feed the first visitor with dumplings, give the second a portion of cranberry juice, and give the third visitor a portion of cranberry juice and a pancake with a condensed milk.

In the second test case of the example, the restaurant Denis is not very promising: he can serve no customers.

In the third test case of the example, Denise can serve four visitors. The first guest will receive a full lunch of dumplings, a portion of cranberry juice and a pancake with condensed milk. The second visitor will get only dumplings. The third guest will receive a pancake with condensed milk, and the fourth guest will receive a pancake and a portion of dumplings. Please note that Denis hasn't used all of the prepared products, but is unable to serve more visitors.
import java.util.*;
import java.lang.*;
import java.io.*;


public class cf
{
    static PrintWriter out;
    static int MOD = 1000000007;
    static FastReader scan;

    /*-------- I/O using short named function ---------*/
    public static String ns(){return scan.next();}
    public static int ni(){return scan.nextInt();}
    public static long nl(){return scan.nextLong();}
    public static double nd(){return scan.nextDouble();}
    public static String nln(){return scan.nextLine();}
    public static void p(Object o){out.print(o);}
    public static void ps(Object o){out.print(o + " ");}
    public static void pn(Object o){out.println(o);}
    /*-------- for output of an array ---------------------*/
    static void iPA(int arr []){
        StringBuilder output = new StringBuilder();
        for(int i=0; i<arr.length; i++)output.append(arr[i] + " ");out.println(output);
    }
    static void lPA(long arr []){
        StringBuilder output = new StringBuilder();
        for(int i=0; i<arr.length; i++)output.append(arr[i] + " ");out.println(output);
    }
    static void sPA(String arr []){
        StringBuilder output = new StringBuilder();
        for(int i=0; i<arr.length; i++)output.append(arr[i] + " ");out.println(output);
    }
    static void dPA(double arr []){
        StringBuilder output = new StringBuilder();
        for(int i=0; i<arr.length; i++)output.append(arr[i] + " ");out.println(output);
    }
    /*-------------- for input in an array ---------------------*/
    static void iIA(int arr[]){
        for(int i=0; i<arr.length; i++)arr[i] = ni();
    }
    static void lIA(long arr[]){
        for(int i=0; i<arr.length; i++)arr[i] = nl();
    }
    static void sIA(String arr[]){
        for(int i=0; i<arr.length; i++)arr[i] = ns();
    }
    static void dIA(double arr[]){
        for(int i=0; i<arr.length; i++)arr[i] = nd();
    }
    /*------------ for taking input faster ----------------*/
    static 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;
        }
    }

    // Method to check if x is power of 2
    static boolean isPowerOfTwo (int x) { return x!=0 && ((x&(x-1)) == 0);}
    //Method to return lcm of two numbers
    static int gcd(int a, int b){return a==0?b:gcd(b % a, a); }
    //Method to count digit of a number
    static int countDigit(long n){String sex=Long.toString(n);return sex.length();}
    static void reverse(int a[]) {
        int i, k, t;int n=a.length;
        for (i = 0; i < n / 2; i++) {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
    }

    //Method for sorting
    static void ruffle_sort(int[] a) {
        //shandom_ruffle
        Random r=new Random();
        int n=a.length;
        for (int i=0; i<n; i++) {
            int oi=r.nextInt(n);
            int temp=a[i];
            a[i]=a[oi];
            a[oi]=temp;
        }
        //sort
        Arrays.sort(a);
    }
    //Method for checking if a number is prime or not
    static boolean isPrime(int n) {
        if (n <= 1) return false;
        if (n <= 3) return true;
        if (n % 2 == 0 || n % 3 == 0) return false;
        for (int i = 5; i * i <= n; i = i + 6)
            if (n % i == 0 || n % (i + 2) == 0)
                return false;
        return true;
    }

    public static void main (String[] args) throws java.lang.Exception
    {
        OutputStream outputStream =System.out;
        out =new PrintWriter(outputStream);
        scan =new FastReader();
        //for fast output sometimes
        StringBuilder sb = new StringBuilder();
        int t = ni();

        while(t--!=0) {
            int[] a=new int[3];
            iIA(a);
            Arrays.sort(a);
            int count=0;
            for(int i=0;i<3;i++)
            {
                if(a[i]!=0){
                    count+=1;
                    a[i]-=1;
                }
            }
            if(a[2]>=1&&a[1]>=1){
                count+=1;
                a[2]-=1;
                a[1]-=1;
            }
            if(a[0]>=1&&a[2]>=1){
                count+=1;
                a[0]-=1;
                a[2]-=1;
            }
            if(a[0]>=1&&a[1]>=1){
                count+=1;
                a[0]-=1;
                a[1]-=1;
            }


            if(a[0]>=1&&a[1]>=1&&a[2]>=1){
                count+=1;
                a[0]-=1;
                a[1]-=1;a[2]-=1;
            }

            pn(count);
        }
        out.flush();
        out.close();
    }


}
//class Pair implements Comparator<Pair> {
//    int x;
//    int y;
//
//    // Constructor
//    public Pair(int x, int y)
//    {
//        this.x = x;
//        this.y = y;
//    }
//    @Override
//    public int compare(Pair a,Pair b){
//        return a.x-b.x;                //for ascending order
//    }
//}
