#include <bits/stdc++.h>
using namespace std;
int n, m;
bool conn[500][500];
set<int> samenei[500];
set<int> diffnei[500];
int type[500];
char ans[500];
bool test(char a, char b) {
  if (a == 'a' && b == 'c') return false;
  if (a == 'c' && b == 'a') return false;
  return true;
}
void dfs(int node, int currtype) {
  if (type[node] != -1 && type[node] != currtype) {
    cout << "No" << endl;
    exit(0);
  }
  if (type[node] != -1) {
    return;
  }
  type[node] = currtype;
  for (int i = 0; i < (n); ++i) {
    if (i == node) continue;
    if (!conn[node][i]) {
      int newtype;
      if (currtype == 1)
        newtype = 2;
      else
        newtype = 1;
      dfs(i, newtype);
    }
  }
  for (int i = 0; i < (n); ++i) {
    if (i == node) continue;
    if (conn[node][i]) {
      if (type[i] == 0) continue;
      int newtype = currtype;
      dfs(i, newtype);
    }
  }
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < (m); ++i) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    conn[u][v] = conn[v][u] = true;
  }
  for (int i = 0; i < (500); ++i) type[i] = -1;
  int deg[500];
  for (int i = 0; i < (n); ++i) deg[i] = 0;
  for (int i = 0; i < (n); ++i) {
    for (int j = 0; j < (n); ++j) {
      if (conn[i][j]) {
        deg[i]++;
      }
    }
  }
  for (int i = 0; i < (n); ++i) {
    for (int j = 0; j < (n); ++j) {
      if (i == j) continue;
      for (int k = 0; k < (n); ++k) {
        if (i == k || j == k) continue;
        if (conn[i][j] && conn[j][k] && !conn[i][k]) {
          type[j] = 0;
        }
      }
    }
  }
  for (int i = 0; i < (n); ++i) {
    if (type[i] != -1) continue;
    dfs(i, 1);
  }
  char anso[500];
  for (int i = 0; i < (n); ++i) {
    if (type[i] == 0) {
      anso[i] = 'b';
    } else if (type[i] == 1) {
      anso[i] = 'a';
    } else if (type[i] == 2) {
      anso[i] = 'c';
    } else {
      anso[i] = 'a';
    }
  }
  for (int i = 0; i < (n); ++i) {
    for (int j = 0; j < (n); ++j) {
      if (i == j) continue;
      char ac = anso[i];
      char ad = anso[j];
      if ((test(ac, ad) && !conn[i][j]) || (!test(ac, ad) && conn[i][j])) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  for (int i = 0; i < (n); ++i) {
    cout << anso[i];
  }
  cout << endl;
}
