#include <bits/stdc++.h>
using namespace std;
int n, m, i, j, a, b;
vector<int> G[501];
vector<vector<int>> G2(501, vector<int>(501, 0));
char s[501];
int main() {
  scanf("%d%d", &n, &m);
  for (i = 0; i < m; ++i) {
    scanf("%d%d", &a, &b);
    --a;
    --b;
    G[a].push_back(b);
    G[b].push_back(a);
    G2[a][b] = 1;
    G2[b][a] = 1;
  }
  for (i = 0; i < n; ++i)
    if ((int)G[i].size() == n - 1) s[i] = 'b';
  for (i = 0; i < n; ++i)
    if (s[i] != 'b') {
      s[i] = 'a';
      for (auto to : G[i])
        if (s[to] != 'b') s[to] = 'a';
      break;
    }
  for (i = 0; i < n; ++i)
    if (s[i] != 'a' && s[i] != 'b') s[i] = 'c';
  for (i = 0; i < n; ++i)
    for (j = 0; j < n; ++j)
      if (i != j)
        if (s[i] == 'a' && s[j] == 'c' || s[i] == 'c' && s[j] == 'a') {
          if (G2[i][j]) {
            printf("No");
            return 0;
          }
        } else if (!G2[i][j]) {
          printf("No");
          return 0;
        }
  printf("Yes\n");
  cout << s;
  return 0;
}
