#include <iostream>
using namespace std;
#define mx 2010
#define inf 100000000;
int Dis[mx],Node,Edge,a[mx],b[mx],c[mx];
int Belmanford();
int main(){
int qtdRepeticoes, i;
cin >> qtdRepeticoes;
while(qtdRepeticoes > 0){
cin >> Node >> Edge;
for(i = 0; i < Edge; i++){
cin >> a[i] >> b[i] >> c[i]);
}
if(Belmanford()){
cout << "possible\n";
}
else{
cout << "not possible\n";
}
qtdRepeticoes --;
}
return 0;
}
int Belmanford(){
int i, j;
for(i = 0; i <= Node; i++){
Dis[i]=inf;
}
for(i = 0; i < Node; i++){
for(j = 0; j < Edge; j++){
if(Dis[b[j]] > Dis[a[j]]+c[j]){
Dis[b[j]] = Dis[a[j]] + c[j];
}
}
}
for(i = 0; i < Edge; i++){
if(Dis[b[i]] > Dis[a[i]] + c[i]){
return 1;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbXggMjAxMAojZGVmaW5lIGluZiAxMDAwMDAwMDA7CgppbnQgRGlzW214XSxOb2RlLEVkZ2UsYVtteF0sYltteF0sY1tteF07CgppbnQgQmVsbWFuZm9yZCgpOwoKaW50IG1haW4oKXsKICAgIGludCBxdGRSZXBldGljb2VzLCBpOwoKICAgIGNpbiA+PiBxdGRSZXBldGljb2VzOwoKICAgIHdoaWxlKHF0ZFJlcGV0aWNvZXMgPiAwKXsKICAgICAgICBjaW4gPj4gTm9kZSA+PiBFZGdlOwogICAgICAgIAoJZm9yKGkgPSAwOyBpIDwgRWRnZTsgaSsrKXsKICAgICAgICAgICAgY2luID4+IGFbaV0gPj4gYltpXSA+PiBjW2ldKTsKCX0KCiAgICAgICAgaWYoQmVsbWFuZm9yZCgpKXsKICAgICAgICAgICAgY291dCA8PCAicG9zc2libGVcbiI7Cgl9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgY291dCA8PCAibm90IHBvc3NpYmxlXG4iOwoJfQoKCXF0ZFJlcGV0aWNvZXMgLS07CiAgICB9CiAgICByZXR1cm4gMDsKfQoKaW50IEJlbG1hbmZvcmQoKXsKCWludCBpLCBqOwogICAgCglmb3IoaSA9IDA7IGkgPD0gTm9kZTsgaSsrKXsKCQlEaXNbaV09aW5mOwoJfQoKICAgIAlmb3IoaSA9IDA7IGkgPCBOb2RlOyBpKyspewogICAgICAgIAlmb3IoaiA9IDA7IGogPCBFZGdlOyBqKyspewogICAgICAgICAgICAJCWlmKERpc1tiW2pdXSA+IERpc1thW2pdXStjW2pdKXsKICAgICAgICAgICAgICAgIAkJRGlzW2Jbal1dID0gRGlzW2Fbal1dICsgY1tqXTsKCQkJfQoJCX0KCX0KICAKICAgIAlmb3IoaSA9IDA7IGkgPCBFZGdlOyBpKyspewogICAgICAgIAlpZihEaXNbYltpXV0gPiBEaXNbYVtpXV0gKyBjW2ldKXsKCQkJcmV0dXJuIDE7CgkJfQoJfQoKICAgICAgICByZXR1cm4gMDsKfQ==