#include <bits/stdc++.h>   using namespace std;   const long long M = 1e9 + 7;   const long long N = 1e5 + 10;   const long long INF = 1e9 + 7;   vector<long long> fact(N), ifact(N);   long long gcd(long long x, long long y) {     if (y % x == 0) return x;     return gcd(y % x, x);   }   long long inv(long long x) {     long long res = 1;     long long b = M - 2;     while (b) {       if (b & 1) res = (res * x) % M;       x = (x * x) % M;       b >>= 1;     }     return res;   }   bool prime[1000006];   void SieveOfEratosthenes(long long n) {     for (long long p = 2; p * p <= n; p++) {       if (prime[p] == true) {         for (long long i = p * p; i <= n; i += p) prime[i] = false;       }     }   }   void init() {     fact[0] = 1;     for (long long i = 1; i < N; i++) fact[i] = (fact[i - 1] * i) % M;     ifact[(long long)2e5] = inv(fact[(long long)2e5]);     for (long long i = (long long)2e5 - 1; i >= 0; i--)       ifact[i] = (ifact[i + 1] * (i + 1)) % M;   }   long long ncr(long long n, long long r) {     if (r > n) return 0;     long long res = fact[n];     res = (res * ifact[r]) % M;     res = (res * ifact[n - r]) % M;     return res;   }   long long power(long long x, long long y, long long p) {     long long res = 1;     x = x % p;     while (y > 0) {       if (y & 1) res = (res * x) % p;       y = y >> 1;       x = (x * x) % p;     }     return res;   }   long long lowbit(long long x) {     for (long long i = 0;; i++) {       if (x & (1 << i)) return 1 << i;     }   }   string decimal_to_binary(long long n) {     long long t = 0;     long long tt = n;     while (tt > 0) {       t++;       tt /= 2;     }     bitset<32> s = bitset<32>(n);     string str =   ;     for (long long i = 0; i < s.size(); i++) {       str += s[i] +  0 ;     }     reverse(str.begin(), str.end());     return str;   }   bool checkPrime(long long x) {     if (x == 1) {       return false;     }     if (x <= 3) {       return true;     }     long long t = 2;     if (x % 2 == 0) {       return false;     }     t = 3;     for (t; t <= sqrt(x); t += 2) {       if (x % t == 0) {         return false;       }     }     return true;   }   vector<long long> primeDivisor(long long x) {     if (x <= 3) {       vector<long long> r = {x};       return r;     }     long long n = floor(sqrt(x));     vector<long long> res;     for (long long i = 2; i <= n; i++) {       if (x % i == 0) {         res.push_back(i);       }       while (x % i == 0) {         x = x / i;       }       if (x < 2) {         break;       }     }     if (x > 2) {       res.push_back(x);     }     return res;   }   struct comp {     bool operator()(const pair<long long, long long> &x,                     const pair<long long, long long> &y) {       return x.first < y.first;     }   };   void solve() {     int a, b, c;     cin >> a >> b >> c;     int ans = 0;     if (a) {       a--;       ans++;     }     if (b) {       b--;       ans++;     }     if (c) {       c--;       ans++;     }     if (c == 1) {       if (a && b) {         a--;         b--;         ans++;       }       if (a && c) {         a--;         c--;         ans++;       }       if (b && c) {         b--;         c--;         ans++;       }     } else {       if (a && c) {         a--;         c--;         ans++;       }       if (b && c) {         b--;         c--;         ans++;       }       if (a && b) {         a--;         b--;         ans++;       }     }     if (a && b && c) {       a--;       b--;       c--;       ans++;     }     cout << ans << endl;     return;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);     long long t = 1;     cin >> t;     while (t--) {       solve();     }     return 0;   }