//用栈来模拟撤销的题
#include<iostream>
#include<stack>
#include<algorithm>
#include<string>

using namespace std;

int main()
{
    //加速cin/cout
    ios::sync_with_stdio(false);
    cin.tie(0);

    int p;
    while(cin>>p) //多组输入报错,一个样例都没过,妈的
    {
        string s;    
        stack<string> st;
        st.push(s);
    //stack<int> op; //操作栈多余
        while(p--)
        {
            int t;
            cin>>t;
            if(t==1)
            {
                string str;
                cin>>str;
                s.append(str);
                st.push(s);
            }
            else if(t==2)
            {
                int k;
                cin>>k;
                int len=(int)s.length();
                s.erase(len-k,len);
                st.push(s);
            }
            else if(t==3)
            {
                int k;
                cin>>k;
                cout<<s[k-1]<<endl;
            }
            else//读题错误:op1或op2之前的状态
            {
                st.pop();
                s=st.top();
            }
        }
    }
    return 0;
}