#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int a[maxn], b[maxn];
char c[maxn] = {0};
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]), a[i]--;
  for (int i = 1; i <= n; i++) scanf("%d", &b[i]), b[i]--;
  set<int> st1, st2;
  vector<int> vt;
  for (int i = 1; i <= n; i++) {
    if (st1.count(b[i]))
      st1.erase(b[i]);
    else
      st2.insert(b[i]);
    if (st2.count(a[i]))
      st2.erase(a[i]);
    else
      st1.insert(a[i]);
    if (st1.empty() && st2.empty()) vt.push_back(i);
  }
  if (vt.size() < k) {
    printf("NO\n");
    return 0;
  }
  int l = 0;
  char s = 'a';
  for (int i = 0; i < vt.size(); i++) {
    for (int j = l; j <= vt[i]; j++) c[a[j]] = s;
    l = vt[i] + 1;
    s += 1;
    s = min('z', s);
  }
  printf("YES\n");
  printf("%s\n", c);
}
