#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun1(char *Str,char *ch)
{
int len=strlen(Str);
int i=0;
while(ch[i]!='\0')
{
Str[len++]=ch[i];
i++;
}
Str[len]='\0';
printf("%s",Str);
}
void fun2(char *Str,int a,int b)
{
int len=strlen(Str);
int i=0,j=0;
char ch[100];
while(Str[i]!='\0')
{
for(i=a; i<a+b; i++)
ch[j++]=Str[i];
i++;
}
ch[j]='\0';
i=0;
while(ch[i]!='\0')
{
Str[i]=ch[i];
i++;
}
Str[i]='\0';
printf("%s",Str);
}
void fun3(char *Str,int e,char *ch)
{
int i,j=0;
char Str1[10000];
strcpy(Str1,Str);
int len1=strlen(Str);
int len0=strlen(ch);
for(i=e; i<e+len0; i++)
{
Str[i]=ch[j++];
}
for(j=i; j<i+len0-1; j++)
Str[j]=Str1[e++];
Str[len1+len0]='\0';
printf("%s",Str);
}
void fun4(char *Str,char *ch)
{
int i,k=0,j;
int len1=strlen(Str);
int len0=strlen(ch);
char ch1[len0];
int flag;
for(i=0; i<len1-1-len0; i++)
{
flag=1;
k=0;
for(j=i; j<i+len0; j++)
ch1[k++]=Str[j];
ch1[k]='\0';
if(strcmp(ch1,ch)==0)
{
flag=0;
printf("%d",i);
break;
}
}
if(flag==1)
printf("-1");
}
int main()
{
int q;
char Str[10000],ch[100];
scanf("%d",&q);
scanf("%s",Str);
int i,n;
int a,b,e;
for(i=1; i<=q; i++)
{
scanf("%d",&n);
if(n==1)
{
scanf("%s",ch);
fun1(Str,ch);
}
else if(n==2)
{
scanf("%d %d",&a,&b);
fun2(Str,a,b);
}
else if(n==3)
{
scanf("%d",&e);
scanf("%s",ch);
fun3(Str,e,ch);
}
else if(n==4)
{
scanf("%s",ch);
fun4(Str,ch);
}
}
return 0;
}