#include <bits/stdc++.h>
using namespace std;
void reshenie() {
  int n, m;
  cin >> n >> m;
  int a[n][n];
  for (int i = 0; i < n; ++i) {
    for (int j = i; j < n; ++j) {
      a[i][j] = a[j][i] = 0;
    }
  }
  while (m--) {
    int u, v;
    cin >> u >> v;
    --u, --v;
    a[u][v] = a[v][u] = 1;
  }
  if (n == 1) {
    cout << "Yes\na" << endl;
    return;
  }
  string s(n, '*');
  for (int i = 0; i < n; ++i) {
    for (int j = i + 1; j < n; ++j) {
      if (a[i][j]) {
        s[i] = s[j] = 'b';
      }
    }
  }
  for (int i = 0; i < n; ++i) {
    if (accumulate(a[i], a[i] + n, 0) != n - 1) {
      if (s[i] != 'c') {
        s[i] = 'a';
        for (int j = i + 1; j < n; ++j) {
          if (!a[i][j]) {
            s[j] = 'c';
          }
        }
      } else {
        s[i] = 'c';
        for (int j = i + 1; j < n; ++j) {
          if (!a[i][j]) {
            s[j] = 'a';
          }
        }
      }
    }
  }
  for (int i = 0; i < n; ++i) {
    if (s[i] == '*') {
      cout << "No" << endl;
      return;
    }
    for (int j = i + 1; j < n; ++j) {
      if (a[i][j] && abs(s[i] - s[j]) <= 1) continue;
      if (!a[i][j] && abs(s[i] - s[j]) > 1) continue;
      cout << "No" << endl;
      return;
    }
  }
  cout << "Yes\n" << s << endl;
}
int main() {
  reshenie();
  return 1 - 1 + 2 - 2 + 3 - 3 + 4 - 4 + 5 - 5;
}
