#include <bits/stdc++.h>
using namespace std;
string s,str[105];
int n;
void func(int k)
{ int kk=str[k][0]-48;
{
switch(kk)
{
case 1:
{ int l=str[k].length();
for(int i=2;i<l;i++)
{
s+=str[k][i];
}
cout<<s<<endl;
break;
}
case 2:
{ string r;
int p=str[k][2]-48,q=str[k][4]-48;
for (int j=p;j<=p+q;j++)
{
r+=s[j];
}
s=r;
cout<<s<<endl;
break;
}
case 3:
{ int f=str[k][2]-48;
string s1,t1,r1;
for(int i=0;i<f;i++)
{
s1+=s[i];
}
int l=str[k].length();
for(int i=4;i<l;i++)
{
s1+=str[k][i];
}
for(int i=f;i<s.length();i++)
{
s1+=s[i];
}
s=s1;
cout<<s<<endl;
break;
}
case 4:
{ int l=str[k].length();
string d;
d=str[k].substr(2,l);
int g=l-2,m=0;
for(int i=0;i<s.length();i++)
{ int book=1;
for(int j=0;j<g;j++)
{
if(d[j]!=s[i+j])
{
book=0;
}
}
if(book)
{
cout<<i<<endl;
m=1;
break;
}
}
if(!m)
{
cout<<-1<<endl;
}
break;
}
}}
}
int main()
{
cin>>n;
cin>>s;
for(int i=1;i<=n+1;i++)
{
getline(cin,str[i]);
}
for(int i=1;i<=n+1;i++)
{
func(i);
}
return 0;
}