#include <bits/stdc++.h>
using namespace std;
string ch[100] = {"H",  "He", "Li", "Be", "B",  "C",  "N",  "O",  "F",  "Ne",
                  "Na", "Mg", "Al", "Si", "P",  "S",  "Cl", "Ar", "K",  "Ca",
                  "Sc", "Ti", "V",  "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn",
                  "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr", "Y",  "Zr",
                  "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn",
                  "Sb", "Te", "I",  "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd",
                  "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb",
                  "Lu", "Hf", "Ta", "W",  "Re", "Os", "Ir", "Pt", "Au", "Hg",
                  "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th",
                  "Pa", "U",  "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm"};
int a[18], b[18], n, m, f[17][18], u[18][132000];
bool found(int x, int y, int z, int t) {
  if (x == m) {
    return true;
  }
  if (z == 0) {
    if (u[x + 1][y] == 0)
      if (found(x + 1, y, b[x + 1], 0)) return true;
    u[x + 1][y] = 1;
    return false;
  } else {
    if (t == n) return false;
    int tmp = t;
    while ((tmp < n) && (((y & (1 << tmp)) == 0) || (a[tmp] > z))) tmp++;
    if (tmp < n) {
      f[x][0]++;
      f[x][f[x][0]] = tmp;
      if (found(x, y - (1 << tmp), z - a[tmp], tmp + 1)) return true;
      f[x][0]--;
      if (found(x, y, z, tmp + 1)) return true;
    }
    return false;
  }
}
int main() {
  cin >> n >> m;
  string st;
  for (int i = 0; i < n; i++) {
    cin >> st;
    for (int j = 0; j < 100; j++)
      if (ch[j] == st) {
        a[i] = j + 1;
        break;
      }
  }
  for (int i = 0; i < m; i++) {
    cin >> st;
    for (int j = 0; j < 100; j++)
      if (ch[j] == st) {
        b[i] = j + 1;
        break;
      }
  }
  u[0][(1 << n) - 1] = found(0, (1 << n) - 1, b[0], 0);
  if (u[0][(1 << n) - 1] != 0) {
    printf("YES\n");
    for (int i = 0; i < m; i++) {
      cout << ch[a[f[i][1]] - 1];
      for (int j = 2; j <= f[i][0]; j++) cout << '+' << ch[a[f[i][j]] - 1];
      cout << "->" << ch[b[i] - 1] << endl;
    }
  } else
    printf("NO\n");
  return 0;
}
