#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10;
int n, m, f[N], T, cnt, a[N], nxt[N], fa[N], t[N], qwq;
int findd (int x) {
if (f[x] == x) return x;
else return f[x] = findd(f[x]);
}
int main() {
ios :: sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> T;
while (T --) {
memset(f, 0, sizeof(f));
memset(a, 0, sizeof(a));
memset(nxt, 0, sizeof(nxt));
memset(fa, 0, sizeof(fa));
memset(t, 0, sizeof(t));
cnt = 0;
cin >> n >> m;
for (int i = 1; i <= n; i ++) f[i] = i;
for (int i = 1; i <= m; i ++) {
int x, y;
cin >> x >> y;
f[findd(x)] = findd(y);
}
for (int i = 1; i <= n; i ++) {
if (!a[findd(i)]) {
a[f[i]] = 1;
++ cnt;
fa[f[i]] = cnt;
t[cnt] = f[i];
if (!qwq) qwq = f[i];
}
fa[i] = fa[f[i]];
}
if (cnt == 1) {
cout << "No\n";
continue;
} else cout << "Yes\n";
for (int i = 1; i <= cnt; i ++) {
nxt[i] = i + 1;
if (nxt[i] > cnt) nxt[i] -= cnt;
}
for (int i = 1; i <= n; i ++) {
if (i == qwq) continue;
cout << i << " " << t[nxt[fa[f[i]]]] << "\n";
}
}
return 0;
}