#include <bits/stdc++.h>
#include<stdlib.h>
using namespace std;
#define pb push_back
#define ll long long
#define ff first
#define ss second
#define ppb pop_back
#define mp make_pair
#define vl vector<ll>
#define vi vector<int>
#define endl '\n'
#define all(x) x.begin(), x.end()
#define deb(x) cout << #x << " " << x << endl;
#define f(i, n) for(i=0; i<n; i++)
#define F(i, k, n) for(i=k; i<n; i++)
#define max(a,b) (a<b?b:a)
#define min(a,b) (a>b?b:a)
#define INF 1001001001
#define PI 3.1415926535897932384626
#define MOD 1000000007

void FAST() {	
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
}

// template<typename... T>
// void read(T&... args) {
// 	FAST();
// 	((cin >> args), ...);
// }

// template<typename... T>
// void write(T&&... args) { 
// 	FAST();
// 	((cout << args << " "), ...);
// }

// template<typename T>
// T gcd(T a, T b) {
//     if (b == 0) 
//         return a; 
//     return gcd(b, a % b);  
// } 

// template <typename T>
// void printContainer(T &v){
//     for(auto i : v){
//         cout<<i<<" "; 
//     }
//     cout <<endl;
// }

int main() {
	FAST();
	//code
    ll t;
    cin>>t;
    ll p;
    f(p,t){
        string s;
        cin>>s;
        ll i, a1=0, x1=0, x2=0, a2=0,b1=0,b2=0;
        f(i,s.size()){
            if(s[i]=='('){
                a1++;
                x1++;
            }
            else if(s[i]==')' && x1>0){
                a2++;
                x1--;
            }
            else if(s[i]=='['){
                b1++;
                x2++;
            }
            else if(s[i]==']' && x2>0){
                b2++;
                x2--;
            }
        }
        cout<<min(a1,a2)+min(b1,b2)<<endl;
    
    }
	return 0;
}