#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 1e5 + 50;
const int M = 110;
int arr[N];
vector<int>a[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int k;
cin >> k;
for (int j = 1; j <= k; j++) {
int x;
cin >> x;
a[i].push_back(x);
}
}
int p = 1;
while (m--) {
int op, b;
cin >> op >> b;
if (op == 0) {
p = a[p][b-1];
}
else if (op == 1) {
arr[b] = p;
cout << p << endl;
}
else p = arr[b];
}
cout << p << endl;
}