#include <bits/stdc++.h>
using namespace std;
int n;
int am[509][509];
char co[509];
int cou[509];
void dfs(int v, int c) {
  if (co[v]) return;
  co[v] = 2 * c + 'a';
  for (int i = 1; i < n + 1; i++) {
    if (i == v || !am[v][i]) continue;
    dfs(i, c ^ 1);
  }
}
int main() {
  int m;
  scanf("%d %d", &n, &m);
  for (int i = 1; i < n + 1; i++) {
    co[i] = 0;
    cou[i] = 0;
    for (int j = 1; j < n + 1; j++) {
      am[i][j] = (i == j) ^ 1;
    }
  }
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    am[a][b] = am[b][a] = 0;
  }
  for (int i = 1; i < n + 1; i++)
    for (int j = 1; j < n + 1; j++)
      if (am[i][j]) {
        cou[i]++;
        cou[j]++;
      }
  for (int i = 1; i < n + 1; i++) {
    if (co[i]) continue;
    if (cou[i] == 0) {
      co[i] = 'b';
      continue;
    }
    dfs(i, 0);
  }
  bool yes = 1;
  for (int i = 1; i < n + 1; i++) {
    for (int j = 1; j < n + 1; j++) {
      if (i == j) continue;
      if ((co[i] == 'a' && co[j] == 'c') || (co[i] == 'c' && co[j] == 'a')) {
        if (!am[i][j]) yes = 0;
      } else {
        if (am[i][j]) yes = 0;
      }
    }
  }
  if (!yes) {
    cout << "No" << endl;
    return 0;
  } else {
    cout << "Yes" << endl;
    for (int i = 1; i < n + 1; i++) cout << co[i];
    cout << endl;
  }
}
