#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N,M;
cin >> N >> M;
vector<vector<int>> adj(N+1);
for(int i=1;i<=M;i++){
int u,v;cin>>u>>v;
adj[u].emplace_back(v);
adj[v].emplace_back(u);
}
vector<int> degree(N+1);
for(int i=1;i<=N;i++){
for(int&j:adj[i])if(adj[j].size()>1)degree[i]++;
}
pair<int,int> maxDegree = {0,0};
for(int i=1;i<=N;i++)maxDegree=max(maxDegree,{degree[i],i});
int secondmax = 0;
for(int i=1;i<=N;i++)if(i!=maxDegree.second)secondmax=max(secondmax,degree[i]);
if(M==N-1 and secondmax<=2){
cout<<"YES\n";
cout << 2*N-1 << '\n';
for(int i=1;i<=N;i++)cout<<i<<' ';
for(int i=1;i<N;i++)cout<<N-i+1<<' ';
cout << '\n';
} else cout<<"NO\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |