#include <stdio.h>
#include <string.h>
int main(){
int n1,n2,m[105],t[105],x,y,z,l,q,count=0,i,j,k;
scanf("%d",&q);
char s[10000];
char a[105][105],b[105][10000];
scanf("%s",s);
n1=strlen(s);
for(i=0;i<q;i++){
scanf("%d",&m[i]);
switch(m[i]){
case 1:
scanf("%s",a[i]);
n2=strlen(a[i]);
for(j=0;j<n2;j++){
s[j+n1]=a[i][j];
}
n1=strlen(s);
for(l=0;l<n1;l++){
b[i][l]=s[l];
}
break;
case 2:
scanf("%d %d",&x,&y);
n1=strlen(s);
for(l=0,j=x;j<x+y;j++,l++){
s[l]=s[j];
}
for(j=l;j<n1;j++){
s[j]='\0';
}
z=l;
n1=strlen(s);
for(l=0;l<n1;l++){
b[i][l]=s[l];
}
break;
case 3:
scanf("%d%s",&x,a[i]);
if(z){
n1=z;
}else{
n1=strlen(s);
}
n2=strlen(a[i]);
for(j=x;j<n1;j++){
s[j+n2]=s[j];
}
for(l=0,j=x;j<(n2+x);l++,j++){
s[j]=a[i][l];
}
n1=strlen(s);
for(l=0;l<n1;l++){
b[i][l]=s[l];
}
break;
case 4:
scanf("%s",a[i]);
n1=strlen(s);
n2=strlen(a[i]);
for(l=0;l<n2;l++){
for(j=0;j<n1;j++){
count=0;
if(a[i][l]==s[j]){
for(k=0;k<n2;k++){
if(a[i][l+k]==s[j+k]){
count++;
}
}
}
if(count==n2){
t[i]=j;
goto end;
}
}
}
t[i]=-1;
end:
break;
}
}
for(i=0;i<q;i++){
if(m[i]==4){
printf("%d\n",t[i]);
}else{
printf("%s\n",b[i]);
}
}
return 0;
}