#include <bits/stdc++.h>
using namespace std;
int N, C;
string name[101] = {
    "dummy", "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"};
string X[55];
int A[55], W[55], sum, csum;
int sol[55][55], cnt[55];
bool used[55];
bool DFS(int id, int x, int rest) {
  if (id > C) return true;
  if (x == 0) return DFS(id + 1, W[id + 1], rest);
  int crest = rest;
  for (int I = 1; I <= N; I++)
    if (!used[I] && x >= A[I]) {
      used[I] = true;
      sol[id][cnt[id]++] = A[I];
      if (DFS(id, x - A[I], rest - A[I])) return true;
      cnt[id]--;
      used[I] = false;
      if (x == A[I]) return false;
      while (I + 1 <= N && A[I + 1] == A[I]) crest -= A[I], I++;
      crest -= A[I];
      if (crest < x) return false;
    }
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> N >> C;
  for (int I = 1; I <= N; I++) {
    cin >> X[I];
    A[I] = find(name, name + 101, X[I]) - name;
    sum += A[I];
  }
  for (int I = 1; I <= C; I++) {
    cin >> X[I];
    W[I] = find(name, name + 101, X[I]) - name;
    csum += W[I];
  }
  assert(sum == csum);
  sort(A + 1, A + 1 + N);
  sort(W + 1, W + 1 + C);
  if (DFS(1, W[1], sum)) {
    cout << "YES" << endl;
    for (int I = 1; I <= C; I++) {
      for (int K = 0; K < cnt[I]; K++) {
        cout << name[sol[I][K]];
        if (K + 1 < cnt[I]) cout << "+"[K + 1 == cnt[I]];
      }
      cout << "->" << name[W[I]] << endl;
    }
  } else {
    cout << "NO" << endl;
  }
}
