#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define MAX (ll) (1e5+7)
#define MOD (ll) (1e9+7)

void add(ll*bit,ll idx,ll val)
{
    while(idx<=MAX)
    {
        bit[idx]+=val;
        idx+=(idx&(-idx));
    }
}

ll query(ll*bit,ll idx)
{
    ll su = 0;
    while(idx>0)
    {
        su+=bit[idx];
        idx-=(idx&(-idx));
    }
    return su;
}

int main()
{
      ll n;
      cin>>n;
      string st;
      ll pr;
      ll bit[MAX];
      memset(bit,0,sizeof(bit));
      map<string,ll> ma;
      ll maxi = 0;
      for(int i=0;i<n;i++)
      { 
          cin>>st>>pr;
          maxi = max(maxi,pr);
          ma[st] = pr;
      }
      ll qq;
      cin>>qq;
      while(qq--)
      {
          char x;
          cin>>x;
          if(x == '+')
          {
              string qu;
              cin>>qu;
              add(bit,ma[qu],1);
          }
          else if(x=='-')
          {
              string qu;
              cin>>qu;
              add(bit,ma[qu],-1);
          }
          else if(x == '?')
          {
              ll yy;
              cin>>yy;
              ll res = query(bit,maxi)-query(bit,yy);
              cout<<res<<"\n";
          }
      }
}