#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
const int maxlen = 1e5;
vector<vector<int>> A;
map<int, int> a, b, c;
map<pair<int, int>, int> reb;
int st[501];
void pr_lish() {
  map<pair<int, int>, int>::iterator it;
  for (it = reb.begin(); it != reb.end(); ++it) {
    int x, y;
    x = it->first.first;
    y = it->first.second;
    if ((a.count(x) && c.count(y)) || (a.count(y) && c.count(x))) {
      printf("No");
      exit(0);
    }
  }
}
string ans;
int main() {
  int n, m;
  int i, j, x, y;
  scanf("%d%d", &n, &m);
  A.resize(n + 1);
  for (i = 0; i < m; ++i) {
    scanf("%d%d", &x, &y);
    if (x > y) swap(x, y);
    reb[make_pair(x, y)] = 1;
    st[x]++;
    st[y]++;
    A[x].push_back(y);
    A[y].push_back(x);
  }
  for (i = 1; i <= n; ++i)
    if (st[i] < n - 1) break;
  if (i > n) {
    printf("Yes\n");
    for (i = 0; i < n; ++i) printf("a");
    return 0;
  }
  j = i;
  a[j] = 1;
  for (i = 1; i <= n; ++i) {
    if (i == j) continue;
    if (!reb.count(make_pair(min(i, j), max(i, j)))) c[i] = 1;
  }
  map<int, int>::iterator it, it1, it2;
  for (it = c.begin(); it != c.end(); ++it) {
    int k = it->first;
    for (j = 1; j <= n; ++j) {
      if (j == k) continue;
      if (!reb.count(make_pair(min(k, j), max(k, j)))) a[j] = 1;
    }
  }
  for (i = 1; i <= n; ++i)
    if (!a.count(i) && !c.count(i)) b[i] = 1;
  pr_lish();
  if (a.size() + b.size() + c.size() != n) {
    printf("No");
    return 0;
  }
  for (i = 1; i <= n; ++i) {
    int k;
    k = a.count(i) + b.count(i) + c.count(i);
    if (k != 1) {
      printf("No");
      return 0;
    }
  }
  x = 0;
  x = a.size() * (a.size() - 1) / 2 + a.size() * b.size() +
      b.size() * (b.size() - 1) / 2 + b.size() * c.size() +
      c.size() * (c.size() - 1) / 2;
  if (x != reb.size()) {
    printf("No");
    return 0;
  }
  ans.resize(n);
  for (it = a.begin(); it != a.end(); ++it) {
    ans[(it->first) - 1] = 'a';
  }
  for (it = b.begin(); it != b.end(); ++it) {
    ans[(it->first) - 1] = 'b';
  }
  for (it = c.begin(); it != c.end(); ++it) {
    ans[(it->first) - 1] = 'c';
  }
  cout << "Yes" << endl;
  cout << ans;
  return 0;
}
