#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
char in[1000],sec[100];
int q;
scanf("%d",&q);
getchar();
gets(in);
for(int i=0;i<q;i++)
{
memset(sec,0,sizeof(sec));
gets(sec);
if(sec[0]=='1')
{
char str[100];
sscanf(sec,"%*c%*c%s",&str);
strcat(in,str);
puts(in);
}
else if(sec[0]=='2')
{
int a,b,d=0;
char c[100];
sscanf(sec,"%*c%*c%d %d",&a,&b);
for(int j=a;j<=a+b;j++)
{
c[d]=in[j];
in[d]=c[d];
d++;
}
in[b]='\0';
puts(in);
}
else if(sec[0]=='3')
{
int a,b=0;
char str[100];
sscanf(sec,"%*c%*c%d %s",&a,&str);
int len=strlen(str)+strlen(in);
for(int k=len-1;k>=a;k--)
{
if(in[k]=='\0')in[k]='0';
in[k+1]=in[k];
}
for(int j=a;j<strlen(str)+a;j++)
{
in[j]=str[b++];
}
in[len]='\0';
puts(in);
}
else if(sec[0]=='4')
{
char str[100],b=0;
sscanf(sec,"%*c%*c%s",&str);
int len=strlen(str);
char *p=&in[0],flag=1;
while(*p!='\0')
{
flag=1;
p=&in[b++];
for(int j=0;j<len;j++)
{
if(str[j]!=*p)
{
flag=-1;
break;
}
p++;
}
if(flag==1)break;
}
if(flag)printf("%d",b-1);
else printf("-1");
}
}
return 0;
}```