#include<cstdio>
#include<iostream>
int n,bj,q;
char c[400005];
int read()
{
	int s=0;
	char c=getchar();
	while(c<'0'||c>'9') c=getchar();
	while(c>='0'&&c<='9') s=s*10+c-'0',c=getchar();
	return s;
}
int main()
{
	scanf("%d",&n);
	getchar();
	for(int i=1;i<=2*n;i++)
	c[i]=getchar();
	scanf("%d",&q);
	for(int i=1,az,x,y;i<=q;i++)
	{
		az=read();x=read();y=read();
		if(az==1) std::swap(c[(x+bj*n-1)%(2*n)+1],c[(y+bj*n-1)%(2*n)+1]);
		else bj^=1;
	}
	if(bj) 
	{
		for(int i=n+1;i<=2*n;i++) putchar(c[i]);	
		for(int i=1;i<=n;i++) putchar(c[i]);
	}
	else 
	{
		for(int i=1;i<=n;i++) putchar(c[i]);
		for(int i=n+1;i<=2*n;i++) putchar(c[i]);
	}
}
#include <iostream>
#include <climits>
#include <cmath>
using namespace std;
 
int main(){

  int n;
  cin>>n;
  char s[2*n];
  cin>>s;
  int q;
  cin>>q;
  int count=0;
  
  for(int i=0;i<q;i++){
  	int t,a,b;

  	cin>>t>>a>>b;
  	if(t==1){
  		a--;
  		b--;
  		if(count%2!=0){
  			if(a>=n && b>=n){
  				swap(s[a-n],s[b-n]);
			  }
			  else if(a<n && b<n){
			  	swap(s[a+n],s[b+n]);
			  }
			  else if(a<n && b>=n){
			  	swap(s[a+n],s[b-n]);
			  }
			  else if(a>=n && b<n){
			  	swap(s[a-n],s[b+n]);
			  }
			  
		  }
		  else swap(s[a],s[b]);
	  }
	else{
	  	count++;
	  }
  }
  if(count%2==0){
  	
  }
  else{
  	for(int i=0;i<n;i++){
  		swap(s[i],s[i+n]);
	  }
  }
  cout<<s;
  
}