#include<bits/stdc++.h>
#define scd(n) scanf("%d",&n)
#define sclld(n) scanf("%lld",&n)
#define scf(n) scanf("%f",&n)
#define sclf(n) scanf("%lf",&n)
#define scc(n) scanf("%c",&n)
#define scs(n) scanf("%s",&n)
#define prd(n) printf("%d\n",n)
#define prlld(n) printf("%lld\n",n)
#define prf(n) printf("%f\n",n)
#define prlf(n) printf("%lf\n",n)
#define prc(n) printf("%c\n",n)
#define prs(n) printf("%s\n",n)
#define tr(type,it,s) for(type<int>::iterator it=s.begin();it!=s.end();it++)
#define ft float
#define sg string
#define de double
#define llit long long int
#define ss stringstream
#define pr(type1,type2) pair<type1,type2>
#define vtr vector
#define vr(type) vector< type >
#define ivr vector<int>
#define all(s) (s).begin(),(s).end()
#define fstmp(s,z) (s).find(z)!=(s).end()
#define fvr(s,z) find(all(s),z)!=(s).end()
#define ipr pair<int,int>
#define qe(type) queue<type>
#define qi queue<int>
#define get getchar_unlocked
using namespace std;
/*
inline int inputint()
{
int n=0,s=1;
char p=get();
if(p=='-') s=-1;
while((p<'0'||p>'9')&&p!=EOF&&p!='-') p=get();
if(p=='-') s=-1,p=get();
while(p>='0'&&p<='9')
{
n = (n<< 3) + (n<< 1) + (p - '0');
p=get();
}
return n*s;
}
inline long long int inputlonglongint()
{
long long int n=0,s=1;
char p=get();
if(p=='-') s=-1;
while((p<'0'||p>'9')&&p!=EOF&&p!='-') p=get();
if(p=='-') s=-1,p=get();
while(p>='0'&&p<='9')
{
n = (n<< 3) + (n<< 1) + (p - '0');
p=get();
}
return n*s;
}
*/
int main()
{
string s="";
int q,i,j,k,m,n,a,b,c;
scd(q);
while(q-->0)
{
char sign;
cin>>sign;
scd(n);
if(sign=='+')
{
string attach;
cin>>attach;
s.insert(n,attach);
}
else
{
scd(k);
string now=s.substr(n-1,k);
cout<<now<<'\n';
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBzY2Qobikgc2NhbmYoIiVkIiwmbikKI2RlZmluZSBzY2xsZChuKSBzY2FuZigiJWxsZCIsJm4pCiNkZWZpbmUgc2NmKG4pIHNjYW5mKCIlZiIsJm4pCiNkZWZpbmUgc2NsZihuKSBzY2FuZigiJWxmIiwmbikKI2RlZmluZSBzY2Mobikgc2NhbmYoIiVjIiwmbikKI2RlZmluZSBzY3Mobikgc2NhbmYoIiVzIiwmbikKI2RlZmluZSBwcmQobikgcHJpbnRmKCIlZFxuIixuKQojZGVmaW5lIHBybGxkKG4pIHByaW50ZigiJWxsZFxuIixuKQojZGVmaW5lIHByZihuKSBwcmludGYoIiVmXG4iLG4pCiNkZWZpbmUgcHJsZihuKSBwcmludGYoIiVsZlxuIixuKQojZGVmaW5lIHByYyhuKSBwcmludGYoIiVjXG4iLG4pCiNkZWZpbmUgcHJzKG4pIHByaW50ZigiJXNcbiIsbikKI2RlZmluZSB0cih0eXBlLGl0LHMpIGZvcih0eXBlPGludD46Oml0ZXJhdG9yIGl0PXMuYmVnaW4oKTtpdCE9cy5lbmQoKTtpdCsrKQojZGVmaW5lIGZ0IGZsb2F0CiNkZWZpbmUgc2cgc3RyaW5nCiNkZWZpbmUgZGUgZG91YmxlCiNkZWZpbmUgbGxpdCBsb25nIGxvbmcgaW50CiNkZWZpbmUgc3Mgc3RyaW5nc3RyZWFtCiNkZWZpbmUgcHIodHlwZTEsdHlwZTIpIHBhaXI8dHlwZTEsdHlwZTI+CiNkZWZpbmUgdnRyIHZlY3RvcgojZGVmaW5lIHZyKHR5cGUpIHZlY3RvcjwgdHlwZSA+CiNkZWZpbmUgaXZyIHZlY3RvcjxpbnQ+CiNkZWZpbmUgYWxsKHMpIChzKS5iZWdpbigpLChzKS5lbmQoKQojZGVmaW5lIGZzdG1wKHMseikgKHMpLmZpbmQoeikhPShzKS5lbmQoKQojZGVmaW5lIGZ2cihzLHopIGZpbmQoYWxsKHMpLHopIT0ocykuZW5kKCkKI2RlZmluZSBpcHIgcGFpcjxpbnQsaW50PgojZGVmaW5lIHFlKHR5cGUpIHF1ZXVlPHR5cGU+CiNkZWZpbmUgcWkgcXVldWU8aW50PgojZGVmaW5lIGdldCBnZXRjaGFyX3VubG9ja2VkCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8qCmlubGluZSBpbnQgaW5wdXRpbnQoKQp7CmludCBuPTAscz0xOwpjaGFyIHA9Z2V0KCk7CmlmKHA9PSctJykgcz0tMTsKd2hpbGUoKHA8JzAnfHxwPic5JykmJnAhPUVPRiYmcCE9Jy0nKSBwPWdldCgpOwppZihwPT0nLScpIHM9LTEscD1nZXQoKTsKd2hpbGUocD49JzAnJiZwPD0nOScpCnsKbiA9IChuPDwgMykgKyAobjw8IDEpICsgKHAgLSAnMCcpOwpwPWdldCgpOwp9CnJldHVybiBuKnM7Cn0KaW5saW5lIGxvbmcgbG9uZyBpbnQgaW5wdXRsb25nbG9uZ2ludCgpCnsKbG9uZyBsb25nIGludCBuPTAscz0xOwpjaGFyIHA9Z2V0KCk7CmlmKHA9PSctJykgcz0tMTsKd2hpbGUoKHA8JzAnfHxwPic5JykmJnAhPUVPRiYmcCE9Jy0nKSBwPWdldCgpOwppZihwPT0nLScpIHM9LTEscD1nZXQoKTsKd2hpbGUocD49JzAnJiZwPD0nOScpCnsKbiA9IChuPDwgMykgKyAobjw8IDEpICsgKHAgLSAnMCcpOwpwPWdldCgpOwp9CnJldHVybiBuKnM7Cn0KKi8KaW50IG1haW4oKQp7CiAgICBzdHJpbmcgcz0iIjsKICAgIGludCBxLGksaixrLG0sbixhLGIsYzsKICAgIHNjZChxKTsKICAgIHdoaWxlKHEtLT4wKQogICAgewogICAgICAgIGNoYXIgc2lnbjsKICAgICAgICBjaW4+PnNpZ247CiAgICAgICAgc2NkKG4pOwogICAgICAgIGlmKHNpZ249PScrJykKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBhdHRhY2g7CiAgICAgICAgICAgIGNpbj4+YXR0YWNoOwogICAgICAgICAgICBzLmluc2VydChuLGF0dGFjaCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CgogICAgICAgICAgICBzY2Qoayk7CiAgICAgICAgICAgIHN0cmluZyBub3c9cy5zdWJzdHIobi0xLGspOwogICAgICAgICAgICBjb3V0PDxub3c8PCdcbic7CiAgICAgICAgfQogICAgfQoKCgoKICAgIHJldHVybiAwOwp9CgoKCgoKCg==