func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MOD = (int)1e9 + 7;   const double EPS = 1e-9;   const int INF = INT_MAX;   const long long INFLL = (long long)1e18;   const double PI = acos(-1.0);   template <class T>   T gcd(T a, T b) {     return b ? gcd(b, a % b) : a;   }   template <class T>   T lcm(T a, T b) {     return a / gcd(a, b) * b;   }   const int N = (int)1e5 + 5;   const int P = 1 << 18;   int n, m;   int a[N];   pair<int, int> g[N];   int use[N];   int main() {     ios::sync_with_stdio(false);     cout.setf(ios::fixed | ios::showpoint);     cout.precision(8);     cin >> n >> m;     if (n == 1) return !printf( NO n );     for (int i = 0; i < m; i++) {       int x, y;       cin >> x >> y;       a[x]++;       a[y]++;       g[i] = make_pair(x, y);     }     int flag = 0;     for (int i = 1; i <= n; i++) {       if (a[i] < n - 1) {         flag = 1;         for (int j = 0; j < m; j++) {           if (g[j].first == i) {             use[g[j].second] = 1;           }           if (g[j].second == i) {             use[g[j].first] = 1;           }         }         int cur;         for (int j = 1; j <= n; j++) {           if (!use[j] && j != i) {             cur = j;             break;           }         }         cout <<  YES n ;         int st = 3;         for (int j = 1; j <= n; j++) {           if (j == i) {             cout <<  1  ;             continue;           }           if (j == cur) {             cout <<  2  ;             continue;           }           cout << st <<    ;           st++;         }         cout <<   n ;         st = 3;         for (int j = 1; j <= n; j++) {           if (j == i || j == cur) {             cout <<  1  ;             continue;           }           cout << st <<    ;           st++;         }         return 0;       }     }     if (!flag) return !printf( NO n );     return 0;   }   