#include <bits/stdc++.h>   using namespace std;   int n, m, color[510];   bool g[510][510];   vector<int> nbr[510];   bool dfs(int x, int c) {     color[x] = c;     for (int i = 0; i < nbr[x].size(); i++) {       int y = nbr[x][i];       if (color[y] == c) return 0;       if (color[y] == 0 && dfs(y, 3 - c) == 0) return 0;     }     return 1;   }   int main() {     cin >> n >> m;     for (int i = 1; i <= m; i++) {       int x, y;       cin >> x >> y;       g[x][y] = g[y][x] = 1;     }     for (int i = 1; i < n; i++)       for (int j = i + 1; j <= n; j++)         if (g[i][j] == 0) {           nbr[i].push_back(j);           nbr[j].push_back(i);         }     for (int i = 1; i <= n; i++) {       if (color[i] || nbr[i].size() == 0) continue;       if (dfs(i, 1) == 0) {         puts( No );         return 0;       }     }     for (int i = 1; i < n; i++)       for (int j = i + 1; j <= n; j++)         if (color[i] + color[j] == 3 && g[i][j]) {           puts( No );           return 0;         }     puts( Yes );     for (int i = 1; i <= n; i++) {       if (color[i] == 0)         cout <<  b ;       else if (color[i] == 1)         cout <<  a ;       else if (color[i] == 2)         cout <<  c ;     }     return 0;   }   