//用栈来模拟撤销的题
#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;
}