#include <bits/stdc++.h>
using namespace std;
string sym[] = {
    "",   "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", "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh",
    "Hs", "Mt", "Ds", "Rg", "Cn", "Nh", "Fl", "Mc", "Lv", "Ts", "Og"};
map<string, int> mp;
void pre() {
  for (int i = 1; i <= 118; i++) {
    mp[sym[i]] = i;
  }
}
int dp[20][(1 << 20)], sum[(1 << 20)];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout << setprecision(32);
  pre();
  int n, k;
  cin >> n >> k;
  vector<int> a(n), b(k + 1);
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    a[i] = mp[s];
  }
  for (int i = 1; i <= k; i++) {
    string s;
    cin >> s;
    b[i] = mp[s];
  }
  for (int mask = 0; mask < (1 << n); mask++) {
    sum[mask] = 0;
    for (int i = 0; i < n; i++) {
      if ((mask >> i) & 1) {
        sum[mask] = sum[mask ^ (1 << i)] + a[i];
        break;
      }
    }
  }
  memset(dp, -1, sizeof(dp));
  dp[0][0] = -2;
  for (int i = 1; i <= k; i++) {
    for (int mask = 0; mask < (1 << n); mask++) {
      if (sum[mask] == b[i]) {
        int MSK = ((1 << n) - 1) ^ mask;
        for (int nmask = MSK;; nmask = (nmask - 1) & (MSK)) {
          if (dp[i - 1][nmask] != -1) dp[i][mask ^ nmask] = mask;
          if (nmask == 0) break;
        }
      }
    }
  }
  int MSK = (1 << n) - 1;
  if (dp[k][MSK] == -1) {
    cout << "NO";
  } else {
    cout << "YES\n";
    for (int i = k; i >= 1; i--) {
      int mask = dp[i][MSK];
      string ans = "";
      for (int j = 0; j < n; j++) {
        if ((mask >> j) & 1) {
          if (!ans.empty()) ans += "+";
          ans += sym[a[j]];
        }
      }
      ans += "->";
      ans += sym[b[i]];
      cout << ans << '\n';
      MSK ^= mask;
    }
  }
  return 0;
}
