#include <bits/stdc++.h>
//#include <tr2/dynamic_bitset>
using namespace std;
using bs=bitset<505*2005>;
#define int long long
mt19937 rnd;
#define app push_back
#define all(x) (x).begin(),(x).end()
#ifdef LOCAL
#define debug(...) [](auto...a){ ((cout << a << ' '), ...) << endl;}(#__VA_ARGS__, ":", __VA_ARGS__)
#define debugv(v) do {cout<< #v <<" : {"; for(int izxc=0;izxc<v.size();++izxc) {cout << v[izxc];if(izxc+1!=v.size()) cout << ","; }cout <<"}"<< endl;} while(0)
#else
#define debug(...)
#define debugv(v)
#endif
#define lob(a,x) lower_bound(all(a),x)
#define upb(a,x) upper_bound(all(a),x)
#define print(x) cout<<(x)<<'\n'
double TL=1.9;
int32_t main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n;cin>>n;
    vector<array<int,3> > arr;
    arr.app({1,0,0});
    int S=0;
    for(int i=0;i<n;++i) {
        char c;cin>>c;
        int v;cin>>v;
        S+=v;
        string typ;cin>>typ;
        int c1=(c=='=');
        int typ1=(typ=="async");
        arr.app({c1,v,typ1});
    }
    n=arr.size();
    int lasteq=arr.size()-1;
    while(!arr[lasteq][0]) {
        --lasteq;
    }
    bs ans=0;
    vector<int> order1,order2;
    for(int i=lasteq;i<(n+lasteq)/2;++i) {
        order1.app(i);
    }
    for(int i=(n+lasteq)/2;i<n;++i) {
        order2.app(i);
    }
    vector<int> order;
    for(int j=0;j<n+1;++j) {if(order1.size()>j) order.app(order1[j]); if(order2.size()>j) order.app(order2[j]);}
    int lumi=0;int luma=505*2005;
    int okk=1;
    for(int i:order) {
        if(clock()>TL*CLOCKS_PER_SEC) {
            okk=0;
            break;
        }
        bs b=0;
        for(int j=0;j<=i;++j) {
            if(arr[j][0] && arr[j][2]) {
                b[arr[j][1]]=1;
            }
        }
        if(arr[i][0]) {
            b[arr[i][1]]=1;
        }
        for(int j=i+1;j<n;++j) {
            b=(b<<arr[j][1]);
        }
        for(int j=i;j>=0;--j) {
            if(!arr[j][0] && arr[j][2]) {
                b=(b | (b<<arr[j][1]));
            }
        }
        int umi=0;
        while(!b[umi]) {++umi;}
        int uma=505*2005-1;
        while(b[uma]) --uma;
        if(count(all(order2),i)) lumi=max(lumi,uma);
        else luma=min(luma,umi);
        ans=(ans | b);
    }
    int mi=0;
    while(mi<505*2005 && !ans[mi]) {++mi;}
    int ma=505*2005-1;
    while(ma>=0 && !ans[ma]) {--ma;}
    if(!okk)
    {
        for(int i=0;i<505*2005-5;++i) {
            if(ans[i] && ans[i+1] && ans[i+2] && ans[i+3] && ans[i+4] && i+5>=max(mi,lumi) && i+5<=min(ma,luma) && !ans[i+5]) {
                ans[i+5]=1;
            }
        }
    }
    /*for(int i=0;i<=S;++i) {
        cout<<i<<' '<<ans[i]<<endl;
    }*/
    cout<<ans.count();
    return 0;
}
