nclude <cstdio>
 #include <algorithm>
 #define INF 987654321
 int N, DT[10010][10010];
 struct BREAD{ int p; char k; } S[10010];
 bool cmp(BREAD a, BREAD b){ return a.p < b.p; }
 int max(int a, int b){ return a>b?a:b; }
 int solve(int k, int b, int m, int A, int B)
 {
     int ans = 0;
 if( b < 0 || m < 0 ) return -INF;
 if( k == N ) return 0;
 if( S[k].k == '|' ){
 if( DT[A][B] == 0 ){
 DT[A][B] = max(solve(k+1,b+1,m,A+1,B+1), solve(k+1,b,m-1,A,B+1)+3);
 }
 return DT[A][B];
 }
 if( S[k].k == '@' ) ans = max(solve(k+1,b-1,m+1,A,B), solve(k+1,b,m,A,B));
 if( S[k].k == ')' ) ans = max(solve(k+1,b,m-1,A,B)+2, solve(k+1,b,m,A,B));
 return ans;
 }
 int main()
 {
 scanf("%d", &N);
 for(int i = 0 ; i < N ; i++ )
 scanf("%d %c", &S[i].p, &S[i].k);
 std::sort(S, S+N, cmp);
 printf("%d", max(0, solve(0,0,0,0,0)));
 }
