/**
 * S. Behdad Hosseini, mailto:acm(AT)behdadh(DOT)net(replace AT and DOT), www.behdadh.net/acm
 * Date: Oct 20, 2005
 * A sample code for ACM problem : 2002 Asia Tehran - D
 */
#include <fstream.h>

#define FILEIN "d.in"
#define FILEOUT "d.out"

void main()
{
	ifstream in(FILEIN);
	ofstream out(FILEOUT);

	int tc;
	in >> tc;
	for (;tc>0; tc--)
	{
		// counter : number of units that are believed to be bad (faulty)
		// lastfound : indicates id of last bad unit that is found
		int n, data[110][5], counter=0, lastfound;

		// read input
		in >> n;
		for (int i=0;i<n;i++)
		{
			char ch1, ch2;
			in >> data[i][0] >> data[i][1] >> ch1 >> data[i][3] >> ch2;
			data [i][2] = (int) ch1; data[i][4] = (int) ch2;
		}
			
		// solve it
		for (i=0;i<n;i++)
		{
			int badid = data[i][0];
			int flag = 0; // flag : if is 1 means our assumption is incorrect
			for (int j=0;j<n;j++)
				if (i!=j)
				{
					if ((data[j][1] == badid) && (data[j][2]== (int) 'Y')) flag=1;
					if ((data[j][1] != badid) && (data[j][2]== (int) 'N')) flag=1;
					if ((data[j][3] == badid) && (data[j][4]== (int) 'Y')) flag=1;
					if ((data[j][3] != badid) && (data[j][4]== (int) 'N')) flag=1;
				}
			if (flag==0) 
			{
				// our assumption was correct => n'th unit is faulty (bad)
				counter++;
				lastfound = badid;
			}
		}

		// write output
		if (counter == 1) 
			out << lastfound << endl;
		else 
			out << "impossible" << endl;
	}

	in.close();
	out.close();
}




