#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstring>
using namespace std;
int as(string e,string er){
int s,sd,t,a,q,we=-1,zx;
s=sizeof(e);
sd=sizeof(er);
for( a=0;a<s;a++){q=1;
if(e[a]==er[0]){
for(t=0,zx=a;t<sd;t++,zx++){
if(e[zx]!=er[t]) q--;
}if(q) return a;
}
}
return we;
}
int main(){
int we,e,x,q,er,a,b,zx;
string s="",sd="",t="",c="";
cin>>q;
cin>>s;
for(er=1;er<=q;er++){
cin>>we;
switch (we){
case 1:{
cin>>sd;
s=s+sd;
cout<<s;
sd="";
break;
}
case 2:{
cin>>a>>b;
for(x=a;x<a+b;x++)
t+=s[x];
s=t;
t="";
cout<<s;
break;
}
case 3:{
cin>>q;cin>>t;
zx=sizeof(s);
sd="";
for(e=q;e<zx;e++){//后面一段
sd+=s[e];
} for(e=0;e<q;e++){c+=s[e];}/前面一段
s=c+t+sd;
cout<<s;
c="";t="";sd="";
break;
}
case 4:{
cin>>sd;
cout<<as(s,sd);
break;
}
}
}
return 0;}