#include <bits/stdc++.h>
using namespace std;
const char PT[][5] = {
    "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", "Uut", "Fl", "Uup", "Lv", "Uus", "Uuo"};
int n, k;
bool vis[19];
int s[19];
vector<int> v;
vector<int> ans[19];
bool dfs(int pos, int rem) {
  if (pos == k + 1) return true;
  bool fg = false;
  map<int, bool> _vis;
  for (int i = 0; i < v.size(); i++) {
    if (v[i] > rem) continue;
    if (!vis[i] && !_vis[v[i]]) {
      vis[i] = true;
      _vis[v[i]] = true;
      if (v[i] == rem)
        fg = dfs(pos + 1, s[pos + 1]);
      else
        fg = dfs(pos, rem - v[i]);
      vis[i] = false;
    }
    if (fg) {
      ans[pos].push_back(v[i]);
      return true;
    }
  }
  return false;
}
int main() {
  map<string, int> pt;
  string str;
  for (int i = 0; i < 118; i++) pt[string(PT[i])] = i + 1;
  cin >> n >> k;
  v.clear();
  for (int i = 0; i < n; i++) {
    cin >> str;
    v.push_back(pt[str]);
  }
  sort(v.begin(), v.end(), greater<int>());
  for (int i = 1; i <= k; i++) {
    cin >> str;
    s[i] = pt[str];
    ans[i].clear();
  }
  sort(s + 1, s + 1 + k);
  memset(vis, false, sizeof(vis));
  if (dfs(1, s[1])) {
    cout << "YES\n";
    for (int i = 1; i <= k; i++) {
      str = "";
      for (auto j : ans[i]) str += "+" + string(PT[j - 1]);
      cout << str.substr(1) + "->" + string(PT[s[i] - 1]) << "\n";
    }
  } else
    cout << "NO\n";
}
