const int N=400+5;
int n,m,t;
int i,j,k;
//int a[N];
char ch[N];
int dp[N][N];
int main()
{
IOS;
while(cin>>ch+1){
n=strlen(ch+1);
for(int len=2;len<=n;len++){
for(int i=1;i+len-1<=n;i++){
j=i+len-1;
if( (ch[i]=='(' && ch[j]==')') || (ch[i]=='[' && ch[j]==']') )
dp[i][j]=max(dp[i][j],dp[i+1][j-1]+2);
for(k=i;k<j;k++){
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]);
}
}
}
cout<<n-dp[1][n]<<endl;
}
//PAUSE;
return 0;
}