#include <bits/stdc++.h>
using namespace std;
const int maxn = 510;
int n, m, u, v;
int G[maxn][maxn];
int vis[maxn], cnt;
int p[4] = {0, 1, 2, 3};
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) G[i][i] = 1;
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &u, &v);
    G[u][v] = G[v][u] = 1;
  }
  for (int k = 1; k <= n; k++)
    if (!vis[k]) {
      vis[k] = ++cnt;
      for (int i = k + 1; i <= n; i++) {
        bool ok = 1;
        for (int j = 1; j <= n && ok; j++)
          if (G[i][j] != G[k][j]) ok = 0;
        if (ok) vis[i] = cnt;
      }
    }
  bool ok = 1;
  if (cnt > 3) {
    ok = 0;
  } else {
    do {
      ok = 1;
      for (int i = 1; i <= n && ok; i++)
        for (int j = 1; j <= n && ok; j++) {
          if (!G[i][j] && abs(p[vis[i]] - p[vis[j]]) <= 1) ok = 0;
          if (G[i][j] && abs(p[vis[i]] - p[vis[j]]) > 1) ok = 0;
        }
    } while (!ok && next_permutation(p + 1, p + 4));
  }
  if (ok) {
    printf("Yes\n");
    for (int i = 1; i <= n; i++) printf("%c", p[vis[i]] + 'a' - 1);
    printf("\n");
  } else {
    printf("No\n");
  }
  return 0;
}
