#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int TMXN = 1e5 * 8 + 1;
const int INF = 1e9 + 7;
const long long INFL = 1e18;
int n;
int x, y, val;
map<pair<int, int>, int> t;
void add(int x, int y) {
  for (int i = x; i < INF; i = (i | (i + 1))) t[make_pair(i, y)]++;
}
void erase_it(int x, int y) {
  for (int i = x; i < INF; i = (i | (i + 1))) {
    t[make_pair(i, y)]--;
  }
}
int get(int x, int y) {
  int ans = 0;
  for (int i = x; i > 0; i = (i & (i + 1)) - 1) ans += t[make_pair(i, y)];
  return ans;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d%d", &x, &y, &val);
    if (x == 1) {
      add(y, val);
    } else if (x == 2) {
      erase_it(y, val);
    } else {
      cout << get(y, val) << '\n';
    }
  }
  return 0;
}
