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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
const int nmax=1e5+10;
vector<int> przegra[2*nmax];
vector<int> wygra[2*nmax];
bool vis[2*nmax];
struct talia
{
    int id,lepszy=0,gorszy=0;
    bool operator<(const talia &a) const
    {
        if(a.lepszy==lepszy)
        {
            if(a.gorszy==gorszy)
            {
                return a.id>id;
            }

            return a.gorszy>gorszy;

        }

        return a.lepszy<lepszy;
    }

};
talia talie[2*nmax];
set<talia> lewy;
set<talia> prawy;
int main()
{
    ios_base::sync_with_stdio(0);
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        //cout<<"-->"<<n<<" "<<m<<"\n";
        lewy.clear();
        prawy.clear();
        for(int i=1; i<=n; i++)
        {
            vis[i]=0;
            vis[i+nmax]=0;
            talie[i].id=i;
            talie[i+nmax].id=i+nmax;
            talie[i].lepszy=0;
            talie[i].gorszy=0;
            talie[i+nmax].lepszy=0;
            talie[i+nmax].gorszy=0;
            przegra[i].clear();
            przegra[i+nmax].clear();
            wygra[i].clear();
            wygra[i+nmax].clear();
        }

        for(int i=0; i<m; i++)
        {
            int a,c;
            char b;
            cin>>a>>b>>c;
            if(b=='>')
            {
                talie[c+nmax].gorszy++;
                talie[a].lepszy++;
                przegra[c+nmax].push_back(a);
                wygra[a].push_back(c+nmax);
            }
            else
            {
                talie[c+nmax].lepszy++;
                talie[a].gorszy++;
                przegra[a].push_back(c+nmax);
                wygra[c+nmax].push_back(a);
            }
        }
        for(int i=1; i<=n; i++)
        {
            //talie[i].id=i;
            lewy.insert(talie[i]);
            //cout<<"b "<<lewy.size()<<" "<<talie[i].id<<"\n";
        }
        for(int i=1; i<=n; i++)
        {
            // talie[i+nmax].id=i+nmax;
            prawy.insert(talie[i+nmax]);
            //cout<<"b"<<prawy.size()<<" ";
        }
        set<talia>::iterator it1;
        /*cout<<"\n";

        for(it1=lewy.begin(); it1!=lewy.end(); it1++)
            cout<<it1->id<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
        cout<<"\n";
        for(it1=prawy.begin(); it1!=prawy.end(); it1++)
            cout<<(it1->id)-nmax<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
        cout<<"\n";
        */
        for(int i=1; i<n; i++)
        {
            it1=prawy.begin();
            vis[it1->id]=true;

            for(int j=0; j<przegra[ it1->id ].size(); j++)
            {
                int a=przegra[ it1->id ][j];
                if(!vis[a])
                {
                    lewy.erase(talie[a]);
                    talie[a].lepszy--;
                    lewy.insert(talie[a]);
                }
            }
            for(int j=0; j<wygra[ it1->id ].size(); j++)
            {
                int a=wygra[ it1->id ][j];
                if(!vis[a])
                {
                    lewy.erase(talie[a]);
                    talie[a].gorszy--;
                    lewy.insert(talie[a]);
                }
            }
            prawy.erase(it1);
            /*cout<<"wypisz:\n";

            for(it1=lewy.begin(); it1!=lewy.end(); it1++)
                cout<<it1->id<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
            cout<<"\n";
            for(it1=prawy.begin(); it1!=prawy.end(); it1++)
                cout<<(it1->id)-nmax<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
            */
            it1=lewy.begin();

            vis[ it1->id]=true;

            for(int j=0; j<przegra[ it1->id ].size(); j++)
            {
                int a=przegra[ it1->id][j];
                if(!vis[a])
                {
                    prawy.erase(talie[a]);
                    talie[a].lepszy--;
                    prawy.insert(talie[a]);
                }
            }
            for(int j=0; j<wygra[ it1->id ].size(); j++)
            {
                int a=wygra[ it1->id ][j];
                if(!vis[a])
                {
                    prawy.erase(talie[a]);
                    talie[a].gorszy--;
                    prawy.insert(talie[a]);
                }
            }
            lewy.erase(it1);
            /*cout<<"wypisz2:\n";

            for(it1=lewy.begin(); it1!=lewy.end(); it1++)
                cout<<it1->id<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
            cout<<"\n";
            for(it1=prawy.begin(); it1!=prawy.end(); it1++)
                cout<<(it1->id)-nmax<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
            cout<<"\n\n";
            */
        }
        /*cout<<"pozostalo: "<<lewy.size()<<" "<<prawy.size()<<"\n";
        it1=lewy.begin();
        cout<<it1->id<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
        it1=prawy.begin();
        cout<<it1->id-nmax<<" "<<it1->lepszy<<" "<<it1->gorszy<<"\n";
        */
        it1=lewy.begin();

        if(it1->lepszy>0)
            cout<<"WYGRANA\n";
        else
        {
            it1=prawy.begin();
            if(it1->lepszy>0)
                cout<<"PRZEGRANA\n";
            else
                cout<<"REMIS\n";
        }
    }
}
/*
3
2 4
1 > 1
2 > 2
1 < 2
2 < 1
3 6
1 > 1
2 > 2
3 > 3
1 < 2
2 < 3
3 < 1
4 8
1 > 1
2 > 2
3 > 3
4 > 4
1 < 2
2 < 3
3 < 4
4 < 1
*/