#include <stdio.h>
#include <string.h>
int main(){
int q;
scanf("%d",&q);
int a,b,c,d,e,f=-1;
char s[1000];
char s1[1000];
char s2[1000];
char s3[1000];
char s4[1000];
char s5[1000];
char s6[1000];
scanf("%s",s);
int n=strlen(s);
do{
int x;
scanf("%d",&x);
switch(x){
case 1:
scanf("%s",s1);
int m=strlen(s1);
n = strlen(s);
for(int i=n;i<n+m;i++){
s[i] = s1[i-n];
}
s[n+m]=0;
printf("%s\n",s);
q--;
break;
case 2:
scanf("%d %d",&a,&b);
for(int i=a;i<a+b;i++){
s2[i-a] = s[i];
}
s2[b] = 0;
strcpy(s,s2);
printf("%s\n",s);
q--;
break;
case 3:
scanf("%d",&c);
scanf("%s",s3);
strcpy(s4,s);
d = strlen(s3);
n = strlen(s);
for(int i=c;i<=n;i++){
s[i+d] = s4[i];
}
for(int i=c;i<c+d;i++){
s[i] = s3[i-c];
}
printf("%s\n",s);
q--;
break;
case 4:
scanf("%s",s5);
int e = strlen(s5);
n =strlen(s);
for(int i=0;i<n-e;i++){
for(int j=i;j<i+e;j++){
s6[j-i] = s[j];
}
s6[e] = 0;
if(!strcmp(s6,s5)){
f = i;
break;
}
}
printf("%d",f);
q--;
break;
}
}while(q>0);
return 0;
}