#include <bits/stdc++.h>
using namespace std;
int n, m, u, v, i, j, c[505], ca = 0, cb = 0, cc = 0, cnt, nt;
int main() {
  cin >> n >> m;
  vector<int> g[505];
  for (i = 0; i < 505; i++) c[i] = 0;
  for (i = 0; i < m; i++) {
    cin >> u >> v;
    g[u].push_back(v);
    g[v].push_back(u);
    if (g[u].size() == n - 1) {
      c[u] = 2;
      cb++;
    }
    if (g[v].size() == n - 1) {
      c[v] = 2;
      cb++;
    }
  }
  for (i = 1; i <= n; i++) {
    if (c[i] == 0) break;
  }
  if (i != n + 1) {
    c[i] = 1;
    ca++;
    for (j = 0; j < g[i].size(); j++) {
      v = g[i][j];
      if (c[v] == 0) {
        c[v] = 1;
        ca++;
      }
    }
  }
  while (i <= n && c[i] != 0) i++;
  if (i != n + 1) {
    c[i] = 3;
    cc++;
    for (j = 0; j < g[i].size(); j++) {
      v = g[i][j];
      if (c[v] == 2) continue;
      if (c[v] == 1) {
        cout << "NO" << endl;
        return 0;
      } else {
        c[v] = 3;
        cc++;
      }
    }
  }
  while (i <= n) {
    if (c[i] == 0) {
      cout << "NO" << endl;
      return 0;
    }
    i++;
  }
  for (i = 1; i <= n; i++) {
    u = i;
    if (c[i] == 1) {
      cnt = ca - 1 + cb;
      nt = 3;
    } else if (c[i] == 2)
      cnt = n - 1;
    else {
      cnt = cc - 1 + cb;
      nt = 1;
    }
    if (g[u].size() == n - 1) continue;
    if (g[u].size() != cnt) {
      cout << "NO" << endl;
      return 0;
    }
    for (j = 0; j < g[u].size(); j++) {
      if (c[g[u][j]] == nt) {
        cout << "NO" << endl;
        return 0;
      }
    }
  }
  cout << "YES" << endl;
  for (i = 1; i <= n; i++) {
    if (c[i] == 1)
      cout << "a";
    else if (c[i] == 2)
      cout << "b";
    else
      cout << "c";
  }
  return 0;
}
