1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <cstdio>
#define MAXN 100005

int t,n,m,a,b;
char c;

struct Node {
	int from,to;
} N[2*MAXN];

bool isWin() {
	for(int i=1;i<=n;i++) if(!N[i].from) return false;
	for(int i=1;i<=n;i++) if(N[MAXN+i].to == n) return true;
	return false;
}

bool isLoss() {
	for(int i=1;i<=n;i++) if(!N[MAXN+i].from) return false;
	return true;
}

int main()
{
	scanf("%d",&t);
	while(t--) {
		scanf("%d %d",&n,&m);
		for(int i=1;i<=n;i++) N[i].from = N[i].to = N[MAXN+i].from = N[MAXN+i].to = 0;
		for(int i=0;i<m;i++) {
			scanf("%d %c %d",&a,&c,&b);
			if(c == '>') {
				N[a].from++;
				N[MAXN+b].to++;
			}
			else {
				N[a].to++;
				N[MAXN+b].from++;
			}
		}
		if(isWin()) printf("WYGRANA\n");
		else if(isLoss()) printf("PRZEGRANA\n");
		else printf("REMIS\n");
	}
	return 0;
}