#include <bits/stdc++.h>
using namespace std;
int a[510][510];
int n, m, tp[510];
bool chck() {
  int b[4][4];
  b[1][1] = 1;
  b[1][2] = 1;
  b[1][3] = 0;
  b[2][1] = 1;
  b[2][2] = 1;
  b[2][3] = 1;
  b[3][1] = 0;
  b[3][2] = 1;
  b[3][3] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      if (i == j) continue;
      if (b[tp[i]][tp[j]] == 0 && a[i][j] == 1) return false;
      if (b[tp[i]][tp[j]] == 1 && a[i][j] == 0) return false;
    }
  return true;
}
void print() {
  cout << "Yes\n";
  for (int i = 1; i <= n; i++) {
    char c = 'a' + tp[i] - 1;
    cout << c;
  }
  cout << "\n";
  exit(0);
};
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int x, y;
    cin >> x >> y;
    a[x][y] = 1;
    a[y][x] = 1;
  }
  if (m == n * (n - 1) / 2) {
    cout << "Yes\n";
    for (int i = 1; i <= n; i++) cout << "a";
    cout << "\n";
    return 0;
  }
  for (int i = 1; i <= n; i++) {
    int nm = 0;
    for (int j = 1; j <= n; j++)
      if (a[i][j] == 0 && i != j) nm = j;
    if (nm == 0) continue;
    tp[i] = 1;
    for (int j = 1; j <= n; j++)
      if (a[i][j] == 0 && i != j) tp[j] = 3;
    for (int j = 1; j <= n; j++)
      if (a[nm][j] == 0 && nm != j) tp[j] = 1;
    for (int j = 1; j <= n; j++)
      if (tp[j] == 0) tp[j] = 2;
    if (chck()) print();
  }
  cout << "No\n";
  return 0;
}
