#include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i, n) for(int i = 0;i < n;i++) #define REPR(i, n) for(int i = n;i >= 0;i--) #define FOR(i, m, n) for(int i = m;i < n;i++) #define FORR(i, m, n) for(int i = m;i >= n;i--) #define SORT(v, n) sort(v, v+n); #define VSORT(v) sort(v.begin(), v.end()); #define llong long long #define pb(a) push_back(a) //#define INF ((LLONG_MAX) / (2)) using namespace std; typedef pair P; typedef pair LP; typedef pair PP; typedef pair LPP; typedef long long int ll; typedef pair LL_IP; typedef pair LL_LLP; #define INF 1e9+7 int main(){ map mp[21]; int n; cin >> n; REP(i,n){ int num = 0; cin >> num; if(num == 0){ int n,m; string t; cin >> n >> m; for(int j = 0;j < m;j++){ cin >> t; mp[n][t]++; } }else if(num == 1){ string s; cin >> s; bool exist = false; for(int j = 0;j < 21;j++){ if(mp[j][s]){ mp[j][s]--; exist = true; cout << j << endl; break; } } if(!exist){ cout << "-1" << endl; } }else{ int c = 0; cin >> c; mp[c].clear(); } } return 0; }