#include<iostream>
#include<cmath>
#include<algorithm>
#include<iomanip>
#include<climits>
#include<numeric>
#include<set>
#include<sstream>
#include<map>
#include<vector>
#include<string>
#include<regex>
using namespace std;
const long long MOD = (long long)(1e9 + 7);
vector<string> split(const string& haystack, const string& needle) {
vector<string> result;
size_t start_pos = 0;
size_t found_pos = haystack.find(needle, start_pos);
while (found_pos != string::npos) {
size_t count = found_pos - start_pos;
string token = haystack.substr(start_pos, count);
if (!token.empty()) {
result.push_back(token);
}
start_pos = found_pos + needle.length();
found_pos = haystack.find(needle, start_pos);
}
string last_token = haystack.substr(start_pos);
if (!last_token.empty()) {
result.push_back(last_token);
}
return result;
}
int main() {
map<string, int> mp;
for (int i = 0;i < 10;i++) {
string name;cin >> name;
int mass;cin >> mass;
mp[name] = mass;
}
regex pattern("([A-Z][a-z]*)(\\d*)");
int t;cin >> t;
for (int i = 1;i <= t;i++) {
string s;cin >> s;
long long sum = 0;
for (sregex_iterator it(s.begin(), s.end(), pattern);it != sregex_iterator();it++) {
string element = (*it)[1];
string mass = (*it)[2];
int count = (mass.empty()) ? 1 : stoi(mass);
sum = sum + count * mp[element];
}
cout << sum << endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvbWFuaXA+CiNpbmNsdWRlPGNsaW1pdHM+CiNpbmNsdWRlPG51bWVyaWM+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8c3N0cmVhbT4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8cmVnZXg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgbG9uZyBsb25nIE1PRCA9IChsb25nIGxvbmcpKDFlOSArIDcpOwoKdmVjdG9yPHN0cmluZz4gc3BsaXQoY29uc3Qgc3RyaW5nJiBoYXlzdGFjaywgY29uc3Qgc3RyaW5nJiBuZWVkbGUpIHsKCXZlY3RvcjxzdHJpbmc+IHJlc3VsdDsKCXNpemVfdCBzdGFydF9wb3MgPSAwOwoJc2l6ZV90IGZvdW5kX3BvcyA9IGhheXN0YWNrLmZpbmQobmVlZGxlLCBzdGFydF9wb3MpOwoJd2hpbGUgKGZvdW5kX3BvcyAhPSBzdHJpbmc6Om5wb3MpIHsKCQlzaXplX3QgY291bnQgPSBmb3VuZF9wb3MgLSBzdGFydF9wb3M7CgkJc3RyaW5nIHRva2VuID0gaGF5c3RhY2suc3Vic3RyKHN0YXJ0X3BvcywgY291bnQpOwoJCWlmICghdG9rZW4uZW1wdHkoKSkgewoJCQlyZXN1bHQucHVzaF9iYWNrKHRva2VuKTsKCQl9CgkJc3RhcnRfcG9zID0gZm91bmRfcG9zICsgbmVlZGxlLmxlbmd0aCgpOwoJCWZvdW5kX3BvcyA9IGhheXN0YWNrLmZpbmQobmVlZGxlLCBzdGFydF9wb3MpOwoJfQoKCXN0cmluZyBsYXN0X3Rva2VuID0gaGF5c3RhY2suc3Vic3RyKHN0YXJ0X3Bvcyk7CglpZiAoIWxhc3RfdG9rZW4uZW1wdHkoKSkgewoJCXJlc3VsdC5wdXNoX2JhY2sobGFzdF90b2tlbik7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpIHsKCW1hcDxzdHJpbmcsIGludD4gbXA7Cglmb3IgKGludCBpID0gMDtpIDwgMTA7aSsrKSB7CgkJc3RyaW5nIG5hbWU7Y2luID4+IG5hbWU7CgkJaW50IG1hc3M7Y2luID4+IG1hc3M7CgkJbXBbbmFtZV0gPSBtYXNzOwoJfQoJcmVnZXggcGF0dGVybigiKFtBLVpdW2Etel0qKShcXGQqKSIpOwoJaW50IHQ7Y2luID4+IHQ7Cglmb3IgKGludCBpID0gMTtpIDw9IHQ7aSsrKSB7CgkJc3RyaW5nIHM7Y2luID4+IHM7CgkJbG9uZyBsb25nIHN1bSA9IDA7CgkJZm9yIChzcmVnZXhfaXRlcmF0b3IgaXQocy5iZWdpbigpLCBzLmVuZCgpLCBwYXR0ZXJuKTtpdCAhPSBzcmVnZXhfaXRlcmF0b3IoKTtpdCsrKSB7CgkJCXN0cmluZyBlbGVtZW50ID0gKCppdClbMV07CgkJCXN0cmluZyBtYXNzID0gKCppdClbMl07CgkJCWludCBjb3VudCA9IChtYXNzLmVtcHR5KCkpID8gMSA6IHN0b2kobWFzcyk7CgkJCXN1bSA9IHN1bSArIGNvdW50ICogbXBbZWxlbWVudF07CgkJfQoJCWNvdXQgPDwgc3VtIDw8IGVuZGw7Cgl9CglyZXR1cm4gMDsKfQoK