#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int col(char c)
{
if(c == 'r')
return 0;
if(c == 'g')
return 1;
else
return 2;
}
int main() {
int t;
cin >> t;
int baloon[3][10];
for(int i = 0; i <3; i++) for(int j=0; j < 10; j++) baloon[i][j] = 1;
for(int x = 0; x < t; x++)
{
int r = 0, g = 0, b = 0, q, l;
cin >> q >> l;
for(int i = 0; i < q; i++)
{
string s, answer;
int index;
char color;
cin >> s >> index >> color >> answer;
if(s[2] == 'u') //count
{
}
else //color
{
if(l == 0)
if(answer == "yes")
{
baloon[col(color)][i] = 1;
for(int y = 0; y < 3; y++) if(y != col(color)) baloon[y][index - 1] = 0;
}
else
baloon[col(color)][i] = 0;
else
if(answer == "no")
{
baloon[col(color)][i] = 1;
for(int y = 0; y < 3; y++) if(y != col(color)) baloon[y][index - 1] = 0;
}
else
baloon[col(color)][i] = 0;
}
}
for(int j=0; j < 10; j++)
{
if(baloon[0][j] == 1) cout << "r";
if(baloon[1][j] == 1) cout << "g";
if(baloon[2][j] == 1) cout << "b";
cout << " ";
}
}
return 0;
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY29sKGNoYXIgYykKewoJaWYoYyA9PSAncicpCgkJcmV0dXJuIDA7CglpZihjID09ICdnJykKCQlyZXR1cm4gMTsKCWVsc2UKCQlyZXR1cm4gMjsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgaW50IGJhbG9vblszXVsxMF07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwzOyBpKyspIGZvcihpbnQgaj0wOyBqIDwgMTA7IGorKykgYmFsb29uW2ldW2pdID0gMTsKICAgIGZvcihpbnQgeCA9IDA7IHggPCB0OyB4KyspCiAgICB7CiAgICAgICAgaW50IHIgPSAwLCBnID0gMCwgYiA9IDAsIHEsIGw7CiAgICAgICAgY2luID4+IHEgPj4gbDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgcTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIHMsIGFuc3dlcjsKICAgICAgICAgICAgaW50IGluZGV4OwogICAgICAgICAgICBjaGFyIGNvbG9yOwogICAgICAgICAgICBjaW4gPj4gcyA+PiBpbmRleCA+PiBjb2xvciA+PiBhbnN3ZXI7CiAgICAgICAgICAgIGlmKHNbMl0gPT0gJ3UnKSAvL2NvdW50CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgLy9jb2xvcgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihsID09IDApCiAgICAgICAgICAgIAkJaWYoYW5zd2VyID09ICJ5ZXMiKQogICAgICAgICAgICAgICAgCXsKICAgICAgICAgICAgICAgIAkJYmFsb29uW2NvbChjb2xvcildW2ldID0gMTsKICAgICAgICAgICAgICAgIAkJZm9yKGludCB5ID0gMDsgeSA8IDM7IHkrKykgaWYoeSAhPSBjb2woY29sb3IpKSBiYWxvb25beV1baW5kZXggLSAxXSA9IDA7CiAgICAgICAgICAgICAgICAJfQogICAgICAgICAgICAgICAgCWVsc2UKICAgICAgICAgICAgICAgIAkJYmFsb29uW2NvbChjb2xvcildW2ldID0gMDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIAlpZihhbnN3ZXIgPT0gIm5vIikKICAgICAgICAgICAgICAgIAl7CiAgICAgICAgICAgICAgICAJCWJhbG9vbltjb2woY29sb3IpXVtpXSA9IDE7CiAgICAgICAgICAgICAgICAJCWZvcihpbnQgeSA9IDA7IHkgPCAzOyB5KyspIGlmKHkgIT0gY29sKGNvbG9yKSkgYmFsb29uW3ldW2luZGV4IC0gMV0gPSAwOwogICAgICAgICAgICAgICAgCX0KICAgICAgICAgICAgICAgIAllbHNlCiAgICAgICAgICAgICAgICAJCWJhbG9vbltjb2woY29sb3IpXVtpXSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yKGludCBqPTA7IGogPCAxMDsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoYmFsb29uWzBdW2pdID09IDEpIGNvdXQgPDwgInIiOwogICAgICAgICAgICBpZihiYWxvb25bMV1bal0gPT0gMSkgY291dCA8PCAiZyI7CiAgICAgICAgICAgIGlmKGJhbG9vblsyXVtqXSA9PSAxKSBjb3V0IDw8ICJiIjsKICAgICAgICAgICAgY291dCA8PCAiICI7CiAgICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQo=