#include typedef long long ll; #define REP(i,n) for(int i = 0;i < (n);i++) #define rep(i,m,n) for(int i = (m);i < (n);i++) #define P pair #define pb push_back #define mk make_pair using namespace std; #define Vec(a) vector a const int INF = 1 << 20; const int MOD = 1e9+7; int main(){ ll n; cin >> n; vector < vector > s(21, vector () ); REP(i,n){ int ni; cin >> ni; if(ni == 0){ int nn; cin >> nn; int m; cin >> m; REP(i,m){ string str; cin >> str; s[nn].pb(str); } }else if(ni == 1){ string str; cin >> str; int res = -1; rep(j,1,21){ REP(k,s[j].size()){ if(s[j][k] == str){ res = j; s[j].erase(s[j].begin()+k); break; } } if(res != -1){ break; } } cout << res << endl; }else if(ni == 2){ int c; cin >> c; s[c].clear(); } } return 0; }