#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;
}