#include<bits/stdc++.h>
#define mod 666013
using namespace std;
int N;
vector <int> T[mod];
//imi definesc functia hash ca fiind h[x]=x%mod
//valorile sinonime le plasez intr-o lista inlantuita. In vectorul T pe poz i voi retine un pointer catre inceputul listei inlantuite formate din taote valorile x pentru care h[x]=i
vector<int>::iterator caut(int x)
{
int h=x%mod;
vector<int>:: iterator it;
for(it=T[h].begin();it!=T[h].end();it++)
if(*it==x) return it;
return T[h].end();
}
inline void add(int x)
{
int h=x%mod;
vector<int>::iterator it=caut(x);
if(it==T[h].end())
T[h].push_back(x);
}
inline void sterg(int x)
{
int h=x%mod;
vector<int>::iterator it=caut(x);
if(it!=T[h].end())
T[h].erase(it);
}
void read_solve()
{
int op,val;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
for(scanf("%d",&N);N;N--)
{
scanf("%d %d",&op,&val);
if(op==1)
{
add(val);
continue;
}
if(op==2)
{
sterg(val);
continue;
}
printf("%d\n", caut(val)!=T[val%mod].end());
}
}
int main()
{
read_solve();
}