#include <bits/stdc++.h>
int main(void) {
  int map[505][505];
  int n, m;
  int x, y;
  int cnt[505];
  int visit[505];
  memset(visit, 0, sizeof(visit));
  memset(cnt, 0, sizeof(cnt));
  memset(map, 0, sizeof(map));
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &x, &y);
    map[x][y] = map[y][x] = 1;
    cnt[x]++;
    cnt[y]++;
  }
  for (int i = 1; i <= n; i++) {
    if (cnt[i] == n - 1) visit[i] = 2;
  }
  int who;
  for (int i = 1; i <= n; i++) {
    if (visit[i] != 2) {
      visit[i] = 3;
      who = i;
      break;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (map[who][i] == 1 && visit[i] != 2) {
      visit[i] = 3;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (visit[i] == 0) visit[i] = 1;
  }
  int ok = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n && j != i; j++) {
      if (abs(visit[i] - visit[j]) == 2) {
        if (map[i][j] == 1) {
          ok = 0;
          break;
        }
      } else {
        if (map[i][j] == 0) {
          ok = 0;
          break;
        }
      }
    }
    if (ok == 0) break;
  }
  if (ok == 0)
    printf("No");
  else {
    printf("Yes\n");
    for (int i = 1; i <= n; i++) {
      printf("%c", 'a' + visit[i] - 1);
    }
  }
  return 0;
}
