#include <bits/stdc++.h>
using namespace std;
const string ele[101] = {
    "",   "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"};
map<string, int> re;
vector<int> avl[20];
int p[20], tar[20];
int starttime = clock();
void init() {
  for (int i = 1; i <= 100; ++i) {
    re[ele[i]] = i;
  }
}
int n, k;
bool dfs(int s, int used) {
  if (s == k) {
    cout << "YES\n";
    return true;
  }
  if (clock() - starttime > 2.8 * CLOCKS_PER_SEC) return false;
  for (int i = 0; i < avl[s].size(); ++i) {
    if ((avl[s][i] & used) == 0) {
      if (dfs(s + 1, used | avl[s][i])) {
        string ans;
        for (int j = 0; j < n; ++j) {
          if ((avl[s][i] >> j) & 1) {
            ans += ele[p[j]] + '+';
          }
        }
        ans.erase(ans.length() - 1);
        ans += "->";
        ans += ele[tar[s]];
        cout << ans << endl;
        return true;
      }
    }
  }
  return false;
}
int main() {
  srand(1315056);
  ios::sync_with_stdio(false);
  init();
  cin >> n >> k;
  string str;
  for (int i = 0; i < n; ++i) {
    cin >> str;
    p[i] = re[str];
  }
  for (int i = 0; i < k; ++i) {
    cin >> str;
    tar[i] = re[str];
  }
  random_shuffle(tar, tar + k);
  for (int i = 0; i < (1 << n); ++i) {
    int sum = 0;
    for (int j = 0; j < n; ++j) {
      if ((i >> j) & 1) {
        sum += p[j];
      }
    }
    for (int j = 0; j < k; ++j) {
      if (sum == tar[j]) {
        avl[j].push_back(i);
      }
    }
  }
  if (!dfs(0, 0)) cout << "NO\n";
  return 0;
}
