#include <bits/stdc++.h>
using namespace std;
int n, m, color[510];
bool g[510][510];
vector<int> nbr[510];
bool dfs(int x, int c) {
  color[x] = c;
  for (int i = 0; i < nbr[x].size(); i++) {
    int y = nbr[x][i];
    if (color[y] == c) return 0;
    if (color[y] == 0 && dfs(y, 3 - c) == 0) return 0;
  }
  return 1;
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int x, y;
    cin >> x >> y;
    g[x][y] = g[y][x] = 1;
  }
  for (int i = 1; i < n; i++)
    for (int j = i + 1; j <= n; j++)
      if (g[i][j] == 0) {
        nbr[i].push_back(j);
        nbr[j].push_back(i);
      }
  for (int i = 1; i <= n; i++) {
    if (color[i] || nbr[i].size() == 0) continue;
    if (dfs(i, 1) == 0) {
      puts("No");
      return 0;
    }
  }
  for (int i = 1; i < n; i++)
    for (int j = i + 1; j <= n; j++)
      if (color[i] + color[j] == 3 && g[i][j]) {
        puts("No");
        return 0;
      }
  puts("Yes");
  for (int i = 1; i <= n; i++) {
    if (color[i] == 0)
      cout << 'b';
    else if (color[i] == 1)
      cout << 'a';
    else if (color[i] == 2)
      cout << 'c';
  }
  return 0;
}
