#include <bits/stdc++.h>
using namespace std;
int N, Q;
string S1, S2, S3, S;
char F['Z' + 1]['Z' + 1];
unordered_set <string> SET;
void DFS(string s)
{
if(SET.find(s) != SET.end()) return;
SET.insert(s);
string x = s;
for(int i = 0; i < N; i++) x[i] = F[s[i]][S1[i]];
DFS(x);
for(int i = 0; i < N; i++) x[i] = F[s[i]][S2[i]];
DFS(x);
for(int i = 0; i < N; i++) x[i] = F[s[i]][S3[i]];
DFS(x);
return;
}
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
F['J']['J'] = F['O']['I'] = F['I']['O'] = 'J';
F['O']['O'] = F['J']['I'] = F['I']['J'] = 'O';
F['I']['I'] = F['J']['O'] = F['O']['J'] = 'I';
cin >> N >> S1 >> S2 >> S3 >> Q >> S;
DFS(S1);
DFS(S2);
DFS(S3);
if(SET.find(S) != SET.end()) cout << "Yes\n";
else cout << "No\n";
int l, r;
char c;
while(Q--)
{
cin >> l >> r >> c;
for(int i = l - 1; i < r; i++) S[i] = c;
if(SET.find(S) != SET.end()) cout << "Yes\n";
else cout << "No\n";
}
return 0;
}