#include <bits/stdc++.h>
using namespace std;
long long n, x;
char c;
map<string, long long> m;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%S", &c);
    scanf("%lld", &x);
    if (c == '?')
      printf("%ld\n", m[to_string(x)]);
    else {
      string s, f;
      s.clear();
      while (x != 0) {
        long long g = x % 10;
        x /= 10;
        if (g % 2 == 0)
          s.push_back('0');
        else
          s.push_back('1');
      }
      while (s.size() < 20) {
        s.push_back('0');
      }
      reverse(s.begin(), s.end());
      long long h = s.size();
      for (int i = 0; i < h; i++) {
        long long k = *s.begin() - '0';
        if (c == '+') {
          m[s]++;
          s.erase(s.begin());
        } else {
          m[s]--;
          s.erase(s.begin());
        }
        if (k % 2 == 1) break;
      }
    }
  }
  return 0;
}
