#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int ans, r, c, linked[1005][1005], match[1005], visited[1005];
void init(){
int i, x;
ans=0;
scanf("%d%d", &r, &c);
memset(match, -1, sizeof(match));
memset(linked, 0, sizeof(linked));
for(i=0; i<2*c; i++){
scanf("%d", &x);
linked[i/2][x-1]=1;
}
}
bool find(int x){
for(int i=0; i<c; i++){
if(linked[i][x]&&!visited[i]){
visited[i]=1;
if(match[i]==-1||find(match[i])){
match[i]=x;
return true;
}
}
}
return false;
}
int main(){
//freopen("1.txt", "r", stdin);
int T, i, j;
scanf("%d", &T);
while(T--){
init();
for(i=0; i<r; i++){
memset(visited, 0, sizeof(visited));
if(find(i))
ans++;
}
if(ans<r){
printf("NO\n");
}
else {
if(match[0]>=0)
printf("%d", match[0]+1);
else {
for(j=0; j<r; j++)
if(linked[0][j]){
printf("%d", j+1);
break;
}
}
for(i=1; i<c; i++){
if(match[i]>=0)
printf(" %d", match[i]+1);
else {
for(j=0; j<r; j++){
if(linked[i][j]){
printf(" %d", j+1);
break;
}
}
}
}
printf("\n");
}
}
return 0;
}