#include<stdio.h>
#include<string.h>
int main()
{
int w,i,s,m,n,t,p,q,cl_1,cl_2,r;
char a[105]={0},c[105][105]={0},b[105]={0};
scanf("%d\n",&w);
gets(a);
for(i=0;i<w;i++)
gets(c[i]);
for(i=0;i<w;i++)
{
for(t=0;;t++)
{
if(b[t]=='\0')
break;
b[t]=0;
}
s=c[i][0]-'0';
if(s==1)
{
strcpy(a,strcat(a,c[i]+2));
puts(a);
}
if(s==2)
{
if(c[i][3]==' ')
{
m=c[i][2]-'0';
if(c[i][5]!='\0')
n=(c[i][4]-'0')*10+c[i][5]-'0';
else
n=c[i][4]-'0';
}
else
{
m=(c[i][2]-'0')*10+c[i][3]-'0';
if(c[i][6]!='\0')
n=(c[i][5]-'0')*10+c[i][6];
else
n=c[i][5]-'0';
}
for(t=m;t<m+n;t++)
b[t-m]=a[t];
strcpy(a,b);
puts(a);
}
if(s==3)
{
if(c[i][3]==' ')
{
m=c[i][2]-'0';
p=4;
}
else
{
m=(c[i][2]-'0')*10+c[i][3]-'0';
p=5;
}
for(t=0;t<m;t++)
b[t]=a[t];
strcat(b,c[i]+p);
strcat(b,a+m);
strcpy(a,b);
puts(a);
}
if(s==4)
{
cl_1=strlen(a);
cl_2=strlen(c[i]);
q=0;
for(t=0;t<cl_1;t++)
{
p=0;
for(r=2;r<cl_2;r++)
{
if(a[t+r-2]!=c[i][r])
{p=1;break;}
}
if(p==0)
{
q=1;
printf("%d\n",t);
break;
}
}
if(q==0)
printf("-1");
}
}
return 0;
}