func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 505;   vector<int> g[N];   int used[N], cant, pep[N][N];   void dfs(int u, int col) {     if (g[u].size() == 0) return;     used[u] = col;     int ncol = ((col == 1) ? 2 : 1);     for (int v : g[u])       if (!used[v]) {         dfs(v, ncol);       } else if (used[v] == col) {         cant = 1;       }   }   int main() {     int n, m;     scanf( %d %d , &n, &m);     for (int i = 0; i < m; ++i) {       int u, v;       scanf( %d %d , &u, &v);       pep[u][v] = pep[v][u] = 1;     }     for (int i = 1; i <= n; ++i) {       for (int j = 1; j <= n; ++j) {         if (!pep[i][j] && i != j) {           g[i].push_back(j);         }       }     }     for (int i = 1; i <= n; ++i) {       if (!used[i]) dfs(i, 1);     }     if (cant) {       printf( No n );       return 0;     }     char s[N];     for (int i = 1; i <= n; ++i) {       if (used[i] == 1) {         s[i - 1] =  a ;       } else if (used[i] == 2) {         s[i - 1] =  c ;       } else {         s[i - 1] =  b ;       }     }     s[n] =   0 ;     for (int i = 1; i <= n; ++i) {       for (int j = 1; j <= n; ++j) {         if (pep[i][j]) {           if (abs(s[i - 1] - s[j - 1]) > 1) {             printf( No n );             return 0;           }         }       }     }     printf( Yes n%s n , s);     return (0);   }   