#include<iostream>
#include<string>
using namespace std;
int main()
{
int q,i,j;
cin>>q;
string s,d="";
cin>>s;
string a[1000];
cin.ignore();
for(i=0;i<q;i++)
{
getline(cin,a[i]);
}
for(i=0;i<q;i++)
{
if(i!=q-1)
{
if(a[i][0]=='1')
{
for(j=2;j<a[i].size();j++)
{
s=s+a[i][j];
}
cout<<s<<endl;
}
if(a[i][0]=='2')
{
for(j=(int)(a[i][2]-'0');j<(int)(a[i][2]-'0')+(int)(a[i][4]-'0');j++)
{
d=d+s[j];
s=d;
}
cout<<s<<endl;
d="";
}
if(a[i][0]=='3')
{
for(j=0;j<=(int)(a[i][2]-'0')-1;j++)
{
d=d+s[j];
}
for(j=4;j<a[i].size();j++)
{
d=d+a[i][j];
}
for(j=(int)(a[i][2]-'0');j<s.size();j++)
{
d=d+s[j];
}
s=d;
cout<<s<<endl;
d="";
}
if(a[i][0]=='4')
{
for(j=2;j<a[i].size();j++)
{
d=d+a[i][j];
}
if(s.find(d)==s.npos)
{
cout<<"−1"<<endl;
}
else{
cout<<s.find(d)<<endl;
}
d="";
}
}
if(i==q-1)
{
if(a[i][0]=='1')
{
for(j=2;j<a[i].size();j++)
{
s=s+a[i][j];
}
cout<<s;
}
if(a[i][0]=='2')
{
for(j=(int)(a[i][2]-'0');j<(int)(a[i][2]-'0')+(int)(a[i][4]-'0');j++)
{
d=d+s[j];
s=d;
}
cout<<s;
d="";
}
if(a[i][0]=='3')
{
for(j=0;j<=(int)(a[i][2]-'0')-1;j++)
{
d=d+s[j];
}
for(j=4;j<a[i].size();j++)
{
d=d+a[i][j];
}
for(j=(int)(a[i][2]-'0');j<s.size();j++)
{
d=d+s[j];
}
s=d;
cout<<s;
d="";
}
if(a[i][0]=='4')
{
for(j=2;j<a[i].size();j++)
{
d=d+a[i][j];
}
if(s.find(d)==s.npos)
{
cout<<"−1";
}
else{
cout<<s.find(d);
}
d="";
}
}
}
return 0;
}