#include <bits/stdc++.h>
using namespace std;
char start[102],step1[102],step3[102],step4[102];
int s1,s2,t1;
void first(){
printf("%s\n",strcat(start,step1));
}
void second(){
char u[102];
for(int i = s1,j = 0;i < s1+s2;i++,j++)
u[j] = start[i];
for(int i = 0;i <= 102;i++)
start[i] = u[i];
printf("%s\n",start);
}
void third(){
char e[102],er[102];
for(int i = 0;i < t1;i++)
e[i] = start[i];
for(int i = t1,j = 0;i < 102;i++,j++)
er[j] = start[i];
strcat(e,step3);
printf("%s\n",strcat(e,er));
for(int i = 0;i <= 102;i++)
start[i] = 0;
strcat(start,e);
}
void forth(){
int ans = 0;
for(int i = 0;i < 102;i++)
if(start[i] == step4[0])
for(int x = i,j = 0;x < i + strlen(step4);x++,j++){
if(start[x] != step4[j])
break;
if(j == strlen(step4) - 1) ans++;
}
if(ans == 0) printf("-1\n");
else printf("%d\n",ans);
}
int main(){
int a,b;
scanf("%d%s",&a,start);
for(int i = 1;i <= a;i++){
cin >> b;
if(b == 1){
scanf("%s",step1);
first();
}else if(b == 2){
scanf("%d%d",&s1,&s2);
second();
}else if(b == 3){
scanf("%d%s",&t1,step3);
third();
}else if(b == 4){
scanf("%s",step4);
forth();
}
}
return 0;
}