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.
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
const long long linf = 0x3f3f3f3f3f3f3f3f;
const int eps = 1e-6;
long long qpow(long long a, long long b, long long c) {
  long long res = 1;
  a %= mod;
  while (b) {
    if (b & 1) res = (res * a) % c;
    a = (a * a) % c;
    b >>= 1;
  }
  return res % c;
}
long long qmul(long long a, long long b, long long c) {
  long long res = 0;
  while (b) {
    if (b & 1) res = (res + a) % c;
    a = (a + a) % c;
    b >>= 1;
  }
  return res % c;
}
template <typename T>
bool MAX(T &A, T B) {
  return A < B ? A = B : 0;
}
template <typename T>
bool MIN(T &A, T B) {
  return A > B ? A = B : 0;
}
template <typename T>
void Adm(T &A, T B) {
  A = (A + B) % mod;
}
template <typename T>
void Sub(T &A, T B) {
  A = (A - B + mod) % mod;
}
template <typename T>
void Mul(T &A, T B) {
  A = (A * B) % mod;
}
struct Bit {
  inline int lowbit(int x) { return x & (-x); }
  long long Bit[maxn];
  int N;
  bool rev = 0;
  void init(int x) {
    N = x;
    fill(Bit, Bit + N + 5, 0);
  }
  void addBitMax(int x, long long v) {
    if (rev) x = N - x + 1;
    while (x <= N) Bit[x] = max(Bit[x], v), x += lowbit(x);
  }
  void addBitSum(int x, long long v) {
    if (rev) x = N - x + 1;
    while (x <= N) Bit[x] = (Bit[x] + v) % mod, x += lowbit(x);
  }
  long long qBitMax(int x) {
    if (rev) x = N - x + 1;
    long long res = -linf;
    while (x) res = max(res, Bit[x]), x -= lowbit(x);
    return res;
  }
  long long qBitSum(int x) {
    if (rev) x = N - x + 1;
    long long res = 0;
    while (x) res = (res + Bit[x] % mod), x -= lowbit(x);
    return res;
  }
};
void p_bit(long long x) { cout << bitset<32>(x) << ':' << x << endl; }
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    int ans = 0, a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if (a) ans += 1, a--;
    if (b) ans += 1, b--;
    if (c) ans += 1, c--;
    if (a) {
      if (b > c) {
        if (a && b) ans++, a--, b--;
        if (a && c) ans++, a--, c--;
      } else {
        if (a && c) ans++, a--, c--;
        if (a && b) ans++, a--, b--;
      }
    }
    if (b && c) ans += 1, --b, --c;
    if (a && b && c) ans += 1;
    cout << ans << endl;
  }
  return 0;
}
