#include<bits/stdc++.h>
using namespace std;
string s,str;
int a,b,x,y,len=0;
char one(){//数字为一时(同下)
cin>>str;
s=s+str;
cout<<s<<endl;
}
char two(){
string s1;//临时变量
cin>>a>>b;
for(int i=a;i<=a+b;i++){
cout<<s[i];
s1+=s[i];
}
cout<<endl;
s=s1;
}
char three(){
int len1=0;
string s1="",s2="";//s1表示加入前的一段,s2表示后面一段(如luoguluoguu在第4个(第一个u处)加a,那么luogu是s1,luoguu是s2)
cin>>a>>str;
for(int i=0;i<=a+1;i++){
s1+=s[i];
}
for(int i=0;s1[i]!='\0';i++)len1++;
if(len==len1){s2="";}//len表示s的长度,len1表示s1
else{
for(int i=a+1;i<len;i++){
s2+=s[i];
}
}
s=s1+str+s2;
cout<<s<<endl;
}
char four(){
int strlenn=0,cl=0,i=0,j;
cin>>str;
for(int i=0;str[i]!='\0';i++)strlenn++;//得出str的长度
if(str.find(s)==string::npos){//如果找到了
for(i=0;i<=len;i++){
if(s[i]==str[0]){
cl++;
for(j=1;j<=strlenn;j++){
if(s[i+j]==str[j])cl++;
}
}
if(cl==strlenn){
cout<<i<<endl;
break;
}
}
} else cout<<-1<<endl;
}
int main (){
cin>>x>>s;
for(int i=0;s[i]!='\0';i++)len++;
for(int i=1;i<=x;i++){
scanf("%d",&y);
if(y==1)one();
if(y==2)two();
if(y==3)three();
if(y==4)four();
}
}
求救