#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000000 + 7;
string a[120] = {
    " ",  "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"};
map<string, int> M;
int n, m;
vector<int> st, af, ans[20];
int org[20];
bool vis[20];
bool dfs(int pos, int val);
bool solve() { return dfs(0, af[0]); }
bool dfs(int pos, int val) {
  if (pos > m - 1) return 1;
  bool f = 0;
  bool vis2[200];
  memset(vis2, 0, sizeof(vis2));
  for (int i = 0; i < n; i++) {
    if (vis[i] || val - org[i] < 0 || vis2[org[i]]) continue;
    vis[i] = 1;
    vis2[org[i]] = 1;
    if (val - org[i] == 0) {
      f = dfs(pos + 1, af[pos + 1]);
    } else {
      f = dfs(pos, val - org[i]);
    }
    vis[i] = 0;
    if (f) {
      ans[pos].push_back(org[i]);
      return 1;
    }
  }
  return 0;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  memset(vis, 0, sizeof(vis));
  for (int i = 1; i < 101; i++) M[a[i]] = i;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    string tmp;
    cin >> tmp;
    org[i] = M[tmp];
  }
  for (int i = 0; i < m; i++) {
    string tmp;
    cin >> tmp;
    af.push_back(M[tmp]);
  }
  sort(org, org + n);
  sort(af.begin(), af.end());
  st = af;
  if (solve()) {
    cout << "YES" << endl;
    for (int i = 0; i < m; i++) {
      string tmp = "";
      for (auto it : ans[i]) {
        if (tmp != "") tmp += '+';
        tmp += a[it];
      }
      tmp = tmp + "->" + a[af[i]];
      cout << tmp << endl;
    }
  } else {
    cout << "NO" << endl;
  }
}
