#include #include typedef struct { char A[20][18]; int m, tmp; } seat; int main(void) { char B[18]; int N, data, nC, i, j, k; seat list[20] = {}; scanf("%d", &N); for (i = 0; i < N; ++i) { scanf("%d", &data); if (data == 0) { scanf("%d", &nC); scanf("%d", &list[nC - 1].m); list[nC - 1].tmp = 1; for (j = 0; j < list[nC - 1].m; ++j) scanf("%s", list[nC - 1].A[j]); } else if (data == 1) { scanf("%s", B); for (j = 0; j < 20; ++j) { if (list[j].tmp == 0) continue; for (k = 0; k < list[j].m; ++k) { if (strcmp(list[j].A[k], B) == 0) { list[j].A[k][0] = '\0'; break; } } if (k != list[j].m) break; } if (j == 20) puts("-1"); else printf("%d\n", j + 1); } else { scanf("%d", &nC); list[nC - 1].tmp = 0; } } return 0; }