#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
if (n == 1) {
cout << "NO\n";
exit(0);
}
cout << "YES\n";
unordered_set<string> st;
st.reserve(m * 2);
auto frmat = [](int a, int b) {
return to_string(min(a, b)) + "-" + to_string(max(a, b));
};
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
st.insert(frmat(a, b));
}
int half = n / 2;
for (int i = 1; i <= half; i++) {
for (int j = i + 1; j <= half; j++) {
string edge = frmat(i, j);
if (!st.count(edge)) {
cout << i << ' ' << j << '\n';
}
}
}
for (int i = half + 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
string edge = frmat(i, j);
if (!st.count(edge)) {
cout << i << ' ' << j << '\n';
}
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUobnVsbHB0cik7CgoKCWludCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCWlmIChuID09IDEpIHsKCQljb3V0IDw8ICJOT1xuIjsKCQlleGl0KDApOwoJfQoJY291dCA8PCAiWUVTXG4iOwoJdW5vcmRlcmVkX3NldDxzdHJpbmc+IHN0OwoJc3QucmVzZXJ2ZShtICogMik7CgoJYXV0byBmcm1hdCA9IFtdKGludCBhLCBpbnQgYikgewoJCXJldHVybiB0b19zdHJpbmcobWluKGEsIGIpKSArICItIiArIHRvX3N0cmluZyhtYXgoYSwgYikpOwoJfTsKCglmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewoJCWludCBhLCBiOwoJCWNpbiA+PiBhID4+IGI7CgkJc3QuaW5zZXJ0KGZybWF0KGEsIGIpKTsKCX0KCglpbnQgaGFsZiA9IG4gLyAyOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gaGFsZjsgaSsrKSB7CgkJZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IGhhbGY7IGorKykgewoJCQlzdHJpbmcgZWRnZSA9IGZybWF0KGksIGopOwoJCQlpZiAoIXN0LmNvdW50KGVkZ2UpKSB7CgkJCQljb3V0IDw8IGkgPDwgJyAnIDw8IGogPDwgJ1xuJzsKCQkJfQoJCX0KCX0KCWZvciAoaW50IGkgPSBoYWxmICsgMTsgaSA8PSBuOyBpKyspIHsKCQlmb3IgKGludCBqID0gaSArIDE7IGogPD0gbjsgaisrKSB7CgkJCXN0cmluZyBlZGdlID0gZnJtYXQoaSwgaik7CgkJCWlmICghc3QuY291bnQoZWRnZSkpIHsKCQkJCWNvdXQgPDwgaSA8PCAnICcgPDwgaiA8PCAnXG4nOwoJCQl9CgkJfQoJfQoKCXJldHVybiAwOwp9