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
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//Lukasz Janeczko Krakow
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int g(int u, int l, int &n, vector <bool> &V, vector < pair <int,int> > &Edges)
{
    if(l==2)
        {
            int v1, v2;
            for(int i=0; i<n; i++)
                if(!V[i])
                    v1=i;
            for(int i=n; i<2*n; i++)
                if(!V[i])
                    v2=i;
            pair <int,int> r1, r2;
            r1={v1,v2};
            r2={v2,v1};
            //cout << v1 << " " << v2 << " " << Edges[0].first << " " << Edges[0].second <<endl;
            if(binary_search(Edges.begin(),Edges.end(),r1))
                return 2;
            if(binary_search(Edges.begin(),Edges.end(),r2))
                return 0;
            return 1;
        }
    int e=0;
    for(int i=0; i<n; i++)
        if(!V[(1-u)*n+i])
            {
                V[(1-u)*n+i]=true;
                e=max(e,2-g((u+1)%2,l-1,n,V,Edges));
                V[(1-u)*n+i]=false;
            }
    //cout << u << " " << l << " " << e <<endl;
    return e;
}
int main()
{
    ios_base::sync_with_stdio(false);
    int Z, n, m;
    cin >> Z;
    while(Z--)
        {
            cin >> n >> m;
            if(n>5)
                {
                    vector <int> Deg_in(2*n,0); vector <int> Deg_out(2*n,0);
                    for(int h=0; h<m; h++)
                        {
                            int a, b; char w;
                            cin >> a >> w >> b;
                            if(w=='<')
                                {
                                    Deg_in[a-1]++;
                                    Deg_out[b-1+n]++;
                                }
                            else
                                {
                                    Deg_in[b-1+n]++;
                                    Deg_out[a-1]++;
                                }
                        }
                    int f=-1; bool good=true;                  //0-Bajtek, 1-Bitek
                    for(int i=0; i<n && f==-1; i++)
                        if(Deg_in[i]==n)
                            f=1;
                    for(int i=n; i<2*n && f==-1; i++)
                        if(Deg_in[i]==n)
                            f=0;
                    if(f==-1)
                        {
                            for(int i=0; i<n && good; i++)
                                if(Deg_in[i]==0)
                                    good=false;
                            for(int i=n; i<2*n && good; i++)
                                if(Deg_out[i]==0)
                                    good=false;
                            if(good)
                                f=1;
                        }
                    if(f==0)
                        cout << "WYGRANA" <<endl;
                    else
                    if(f==1)
                        cout << "PRZEGRANA" <<endl;
                    else
                    if(f==-1)
                        cout << "REMIS" <<endl;
                }
            else
                {
                    vector < pair <int,int> > Edges(m);
                    for(int h=0; h<m; h++)
                        {
                            int a, b; char w;
                            cin >> a >> w >> b;
                            if(w=='<')
                                Edges[h]={b-1+n,a-1};
                            else
                                Edges[h]={a-1,b-1+n};
                        }
                    sort(Edges.begin(),Edges.end());
                    vector <bool> V(2*n,false);
                    int ans=g(0,2*n,n,V,Edges);
                    if(ans==0)
                        cout << "PRZEGRANA" <<endl;
                    else
                    if(ans==1)
                        cout << "REMIS" <<endl;
                    else
                    if(ans==2)
                        cout << "WYGRANA" <<endl;
                }
        }

    return 0;
}