// implment 26min #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned int uint; typedef unsigned long long ull; static const double EPS = 1e-9; static const double PI = acos(-1.0); #define REP(i, n) for (int i = 0; i < (int)(n); i++) #define FOR(i, s, n) for (int i = (s); i < (int)(n); i++) #define FOREQ(i, s, n) for (int i = (s); i <= (int)(n); i++) #define FORIT(it, c) for (__typeof((c).begin())it = (c).begin(); it != (c).end(); it++) #define MEMSET(v, h) memset((v), h, sizeof(v)) int n; vector > A, B, C; vector > ans; vector > Normalize(const vector > &str) { char prev = str[0].first; long long sum = 0; vector > ret; REP(i, str.size()) { if (str[i].second == 0) { continue; } if (prev != str[i].first && sum != 0) { ret.push_back(make_pair(prev, sum)); sum = 0; } prev = str[i].first; sum += str[i].second; } if (sum != 0) { ret.push_back(make_pair(prev, sum)); sum = 0; } return ret; } void input(vector > &str) { char c; long long l; str = vector >(); while (scanf(" %c %lld ", &c, &l) == 2) { str.push_back(make_pair(c, l)); } } int main() { while (true) { input(A); input(B); input(C); ans = vector >(); if (A.size() == 0) { break; } bool first = true; REP(i, A.size()) { if (A[i].second == 0) { continue; } bool ok = true; REP(j, B.size()) { if (!first) { ok = false; break; } if (i + j >= (int)A.size()) { ok = false; break; } if (A[i + j].first != B[j].first || A[i + j].second < B[j].second) { ok = false; break; } if (0 < j && j < (int)B.size() - 1 && A[i + j].second != B[j].second) { ok = false; break; } } if (ok) { first = false; if (B.size() == 1) { REP(j, C.size()) { ans.push_back(C[j]); } ans.push_back(make_pair(A[i].first, A[i].second - B[0].second)); } else { ans.push_back(make_pair(A[i].first, A[i].second - B[0].second)); REP(j, C.size()) { ans.push_back(C[j]); } } REP(j, B.size()) { A[i + j].second -= B[j].second; } } else { ans.push_back(A[i]); } } ans = Normalize(ans); REP(i, ans.size()) { printf("%c %lld ", ans[i].first, ans[i].second); } printf("$\n"); } }