#include<fstream>
#include<vector>
#define mod 666013
using namespace std;
int n,t,x;
ifstream in("hashuri.in"); ofstream out("hashuri.out");
vector <int> l[mod];
vector <int> :: iterator cauta(int x){
int lista=x%mod;
for(vector <int> :: iterator it=l[lista].begin(); it!=l[lista].end();++it)
if(x==(*it)) return it;
return l[lista].end(); //caut in lista numerelor x%mod==lista numarul cautat. daca nu il gasesc returnez .end()
}
void insereaza(int x){
int lista=x%mod;
if(cauta(x)==l[lista].end()) //daca nu il gasesc il bag colo
l[lista].push_back(x);
}
void scoate(int x){
int lista=x%mod;
vector <int> :: iterator it=cauta(x);
if(it!=l[lista].end()) //daca il gasesc il scot de colo
l[lista].erase(it);
}
int main(){
//versiunea 3: hashuri
in>>n;
for(int i=1;i<=n;++i){
in>>t>>x;
switch(t){
case 1:{insereaza(x); break;};
case 2:{scoate(x); break;};
case 3:{if(cauta(x)!=l[x%mod].end()) out<<"1\n"; else out<<"0\n"; break;};
};
}
out.close();
return 0;
}