#include <iostream>
#include <fstream>
#include <vector>
#define val 668821
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
vector <int> M[val];
int verificare(int x){
int l = x % val;
for (int i = 0; i < (int)M[l].size(); i++)
if(M[l][i] == x)
return i;
return -1;
}
void inserare (int x){
int pozitie = x % val;
if (verificare(x) == -1)
M[pozitie].push_back(x);
}
void stergere(int x){
int l = x % val;
int pozitie = verificare(x);
if (pozitie!= -1)
M[l].erase(M[l].begin()+pozitie);
}
int main() {
int N, operatie, parametru;
fin >> N;
for (int i=0; i<N; i++){
fin >> operatie >> parametru;
if (operatie == 1)
inserare(parametru);
else if (operatie == 2)
stergere(parametru);
else fout << verificare(parametru) << endl;
}
return 0;
}