#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char arr[100], str[100];
int n, i, j, f, a, b;
cin >> n >> arr;
for (i = 0; i < n; i++)
{
cin >> f;
switch (f)
{
case 1:
{
cin >> str;
strcat(arr, str);
cout << arr<<endl;
break;
}
case 2:
{
cin >> a >> b;
strcpy(arr, arr + 5);
for (j = b; arr[j] != '\0'; j++)
arr[j] = '\0';
cout << arr<<endl;
break;
}
case 3:
{
cin >> a >> str;
strcat(str,arr + a);
arr[a] = '\0';
strcat(arr , str);
cout << arr<<endl;
break;
}
case 4:
{
cin >> str;
int flag = 0;
for (j = 0; arr[j] != '\0'; j++)
{
for (int x=j,b = 0; str[b] != '\0'; b++)
if (arr[x] == str[b])
{flag++; x++;}
else
{ flag = 0; break; }
if (flag == strlen(str))break;
}
if (flag == strlen(str))cout << j ;
else cout << "-1";
break;
}
}
}
return 0;
}