#include <cstdio>
#include <stack>
#include <algorithm>
using namespace std;
int main(){
stack<int> s[4];
int t, m, n, a, b, i, ok;
scanf("%d", &t);
while(t--){
scanf("%d%d", &m, &n);
for(i = m; i > 0; --i)
s[1].push(i);
ok = 1;
while(n--){
scanf("%d%d", &a, &b);
if(ok) if(s[a].empty() || (!s[b].empty() && s[b].top() < s[a].top())) ok = 0;
else{
s[b].push(s[a].top());
s[a].pop();
}
}
printf(ok ? "legal\n" : "illegal\n");
for(i = 1; i < 4; ++i)
while(!s[i].empty()) s[i].pop();
}
return 0;
}
801366 | 长木 | 汉诺塔(三) | ![]() | 0 | 308 | C/C++ | 04-07 20:48:53 |