#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define mp make_pair
int n,m,x,op,k,b;
map<int,int> mp1,t1;
map<pii,int> mp2,t2,t3;
int main()
{
scanf("%d",&n);
while(n--)
{
scanf("%d%d%d",&op,&k,&b);
if(op==1)
{
m++,mp1[k]++;
if(t1[k]&&!t2[mp(k,b)]) mp2[mp(k,b)]++;
else mp2[mp(k,b)]=t3[mp(k,b)]+1;
t3[mp(k,b)]=mp2[mp(k,b)];
}
else if(op==2)
printf("%d\n",m-mp1[k]);
else
{
if(t1[k]&&!t2[mp(k,b)]) t3[mp(k,b)]=mp2[mp(k,b)];
m=mp1[k]-t3[mp(k,b)];
mp1.clear(),t1.clear(),t2.clear(),t3.clear();
mp1[k]=m,t1[k]=1,t2[make_pair(k,b)]=1;
}
}
return 0;
}