#include <bits/stdc++.h>
using namespace std;
vector<int> mp[100010];
int e[509][509];
int n;
int color[509];
void cl(int x, int y) {
  int i;
  for (i = 1; i <= n; i++) {
    if (i != x && i != y) {
      if (e[i][x]) color[i] = 1;
      if (e[i][y]) color[i] = 3;
      if (e[i][x] && e[i][y]) color[i] = 2;
    }
  }
}
int main() {
  int m, i, j;
  cin >> n >> m;
  for (i = 1; i <= m; i++) {
    int u, v;
    scanf("%d%d", &u, &v);
    e[u][v] = 1;
    e[v][u] = 1;
  }
  int flag = 0;
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      if (!e[i][j]) {
        color[i] = 1;
        color[j] = 3;
        cl(i, j);
        flag = 1;
        break;
      }
    }
  }
  if (!flag)
    for (i = 1; i <= n; i++) color[i] = 2;
  for (i = 1; i <= n; i++) {
    if (!color[i]) {
      printf("No\n");
      return 0;
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      if (abs(color[i] - color[j]) <= 1 && !e[i][j]) {
        printf("No\n");
        return 0;
      }
      if (abs(color[i] - color[j]) > 1 && e[i][j]) {
        printf("No\n");
        return 0;
      }
    }
  }
  printf("Yes\n");
  for (i = 1; i <= n; i++) printf("%c", color[i] + 'a' - 1);
}
