#include<bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep1(i, n) for (int i = 1; i <= (int)(n); i++)
using namespace std;
void print(const vector<int> &a) {
int n = a.size();
cout << n << endl;
rep(i, n) {
cout << a[i];
if (i == n - 1) cout << endl;
else cout << " ";
}
}
vector<vector<int>> G;
int main() {
int n, m; cin >> n >> m;
G.resize(n + 1);
rep(i, m) {
int u, v; cin >> u >> v;
G[u].push_back(v); G[v].push_back(u);
}
if (m > n - 1) {
cout << "NO" << endl; return 0;
}
cout << "YES" << endl;
vector<int> res;
rep1(i, n) res.push_back(i);
if (n % 2 == 1) res.push_back(1);
for (int i = 2; i <= n; i++) res.push_back(i);
print(res);
}