#include <bits/stdc++.h>
using namespace std;

int main(){
    int N, Q;
    cin >> N;
    vector<char> S(N), S2(N);
    for(int i=0; i<N; i++){
        cin >> S.at(i);
    }
    for(int i=0; i<N; i++){
        cin >> S2.at(i);
    }
    cin >> Q;
    vector<int> T(Q), A(Q), B(Q);
    for(int i=0; i<Q; i++){
        cin >> T.at(i);
        cin >> A.at(i);
        cin >> B.at(i);
    }

    for(int i=0; i<Q; i++){
        if(T.at(i) == 1){
            if(A.at(i)<=N && B.at(i)<=N){
                swap(S.at(A.at(i)-1), S.at(B.at(i)-1));
            }
            else if(A.at(i)>N && B.at(i)<=N){
                swap(S2.at(A.at(i)-N-1), S.at(B.at(i)-1));
            }
            else if(A.at(i)<=N && B.at(i)>N){
                swap(S.at(A.at(i)-1), S2.at(B.at(i)-N-1));
            }
            else{
                swap(S2.at(A.at(i)-N-1), S2.at(B.at(i)-N-1));
            }
        }
        else{
            swap(S,S2);
        }
    }

    for(int i=0; i<N; i++){
        cout << S.at(i);
    }
    for(int i=0; i<N; i++){
        cout << S2.at(i);
    }

}
#include <bits/stdc++.h>
using namespace std;


int main() {
  int N,Q;
  string S,s,t;
  cin >> N >> S >> Q;
  s=S.substr(0,N);
  t=S.substr(N);
  //cout << s << t << endl;
  bool x=true;
  for (int i=0; i<Q; i++) {
      int T,A,B;
      cin >> T >> A >> B;
      A--;B--;
      if (T==1) {
          if (B<N) {
              if (x) swap(s[A],s[B]);
              else swap(t[A],t[B]);
          }
          else if (A>=N) {
              A-=N,B-=N;
              if (x) swap(t[A],t[B]);
              else swap(s[A],s[B]);
          }
          else {
              B-=N;
              if (x) swap(s[A],t[B]);
              else swap(t[A],s[B]);
          }
      }
      else {
          if (x) x=false;
          else x=true;
      }
      //cout << s << t << endl;
  }
  if (x) cout << s << t << endl;
  else cout << t << s << endl;
}