#include <bits/stdc++.h>
using namespace std;
bool a[501][501];
bool hasEdge(char x, char y) { return (x == 'b') || (y == 'b') || (x == y); }
int main() {
  int n, m, x, y;
  cin >> n >> m;
  while (m--) {
    cin >> x >> y;
    a[x][y] = a[y][x] = true;
  }
  vector<char> s(n + 1, 'b');
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (i == j) {
        continue;
      }
      if (a[i][j] != hasEdge(s[i], s[j])) {
        if (s[i] != 'b' && s[j] != 'b') {
          cout << "No";
          return 0;
        }
        if (s[i] == 'b') {
          if (s[j] == 'a') {
            s[i] = 'c';
          } else {
            s[i] = 'a';
          }
        }
        if (s[j] == 'b') {
          if (s[i] == 'a') {
            s[j] = 'c';
          } else {
            s[j] = 'a';
          }
        }
      }
    }
  }
  cout << "Yes" << endl;
  for (int i = 1; i <= n; i++) {
    cout << s[i];
  }
  return 0;
}
