#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
template <class T>
T sqr(T x) {
  return x * x;
}
vector<int> g[1000];
int n, m;
int ans[1000];
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int u, v;
    cin >> u >> v;
    g[v].push_back(u);
    g[u].push_back(v);
  }
  memset(ans, -1, sizeof(ans));
  for (int i = 1; i <= n; i++) {
    if (g[i].size() == n - 1) ans[i] = 1;
  }
  bool ok = 1;
  for (int i = 1; i <= n; i++) {
    if (ans[i] != -1) continue;
    ans[i] = 0;
    for (int j = 0; j < g[i].size(); j++) {
      int to = g[i][j];
      if (ans[to] != -1) continue;
      ans[to] = 0;
    }
    break;
  }
  for (int i = 1; i <= n; i++) {
    if (ans[i] == -1) ans[i] = 2;
  }
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      bool is = 0;
      for (int k = 0; k < g[i].size(); k++) is |= g[i][k] == j;
      if (!is)
        ok &= (abs(ans[i] - ans[j]) == 2);
      else
        ok &= (abs(ans[i] - ans[j]) < 2);
    }
  }
  if (!ok) {
    cout << "No";
    return 0;
  }
  cout << "Yes" << endl;
  for (int i = 1; i <= n; i++) cout << char('a' + ans[i]);
  return 0;
}
