#include <bits/stdc++.h>
using namespace std;
#define all(v) (v).begin(), (v).end()
#define int long long
#define sz(v) (int)(v).size()
#define mod 998244353
const int MB= 21;
const int MN= 101;
map<string, int> mp;
int cnt;
void solve() {
string str, T;
vector<pair<int, int>> vs;
int B= 0;
while (getline(cin, str)) {
B++;
istringstream ss(str);
int j= 0, nm= 0, mask= 0;
do {
if (!j) {
ss >> T;
nm= stoi(T);
} else {
ss >> T;
if (mp.count(T)) {
mask|= (1<< mp[T]);
} else {
mp[T]= cnt;
mask|= (1<< cnt);
cnt+= 1;
}
}
j++;
}while (ss);
vs.push_back({nm, mask});
}
vector<int> dp((1<< cnt));
for (int kk= 0; kk< 1<<(cnt); kk++) dp[kk]= (-1);
int val= (1<< cnt)- 1;
function<int(int)> calc= [&](int msk)->int{
if (msk== val) {
return 0;
}
int &ret= dp[msk];
if (ret!= -1)return ret;
ret= 1e18;
for (int i= 0; i< B; i++) {
ret= min(ret, calc(msk| vs[i].second)+ vs[i].first);
}
return ret;
};
cout << calc(0)<< "\n";
}
int32_t main(){
int T= 1;
//cin >> T;
while ( T-- ) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCAodikuZW5kKCkKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgc3oodikgKGludCkodikuc2l6ZSgpCiNkZWZpbmUgbW9kIDk5ODI0NDM1MwoKY29uc3QgaW50IE1CPSAyMTsKY29uc3QgaW50IE1OPSAxMDE7Cm1hcDxzdHJpbmcsIGludD4gbXA7CmludCBjbnQ7Cgp2b2lkIHNvbHZlKCkgewogICAgICAgIHN0cmluZyBzdHIsIFQ7CiAgICAgICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiB2czsKICAgICAgICBpbnQgQj0gMDsKCiAgICAgICAgd2hpbGUgKGdldGxpbmUoY2luLCBzdHIpKSB7CgogICAgICAgICAgICAgICAgQisrOwogICAgICAgICAgICAgICAgaXN0cmluZ3N0cmVhbSBzcyhzdHIpOwogICAgICAgICAgICAgICAgaW50IGo9IDAsIG5tPSAwLCBtYXNrPSAwOwoKICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3MgPj4gVDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubT0gc3RvaShUKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcyA+PiBUOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtcC5jb3VudChUKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza3w9ICgxPDwgbXBbVF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcFtUXT0gY250OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza3w9ICgxPDwgY250KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNudCs9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGorKzsKCiAgICAgICAgICAgICAgICB9d2hpbGUgKHNzKTsKCiAgICAgICAgICAgICAgICB2cy5wdXNoX2JhY2soe25tLCBtYXNrfSk7CiAgICAgICAgfQoKICAgICAgICB2ZWN0b3I8aW50PiBkcCgoMTw8IGNudCkpOwoKICAgICAgICBmb3IgKGludCBraz0gMDsga2s8IDE8PChjbnQpOyBraysrKSBkcFtra109ICgtMSk7CgoKICAgICAgICBpbnQgdmFsPSAoMTw8IGNudCktIDE7CgogICAgICAgIGZ1bmN0aW9uPGludChpbnQpPiBjYWxjPSBbJl0oaW50IG1zayktPmludHsKICAgICAgICAgICAgICAgIGlmIChtc2s9PSB2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaW50ICZyZXQ9IGRwW21za107CiAgICAgICAgICAgICAgICBpZiAocmV0IT0gLTEpcmV0dXJuIHJldDsKICAgICAgICAgICAgICAgIHJldD0gMWUxODsKCiAgICAgICAgICAgICAgICBmb3IgKGludCBpPSAwOyBpPCBCOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSBtaW4ocmV0LCBjYWxjKG1za3wgdnNbaV0uc2Vjb25kKSsgdnNbaV0uZmlyc3QpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfTsKCiAgICAgICAgY291dCA8PCBjYWxjKDApPDwgIlxuIjsKfQoKaW50MzJfdCBtYWluKCl7CiAgICAgICAgaW50IFQ9IDE7CiAgICAgICAgLy9jaW4gPj4gVDsKICAgICAgICB3aGlsZSAoIFQtLSApIHsKICAgICAgICAgICAgICAgIHNvbHZlKCk7CiAgICAgICAgfQpyZXR1cm4gMDsKfQo=
MzAwIEJhY2t0cmFja2luZyBEeW5hbWljX1Byb2dyYW1taW5nIEdyZWVkeQoxMjUgRHluYW1pY19Qcm9ncmFtbWluZwozNSBCYWNrdHJhY2tpbmcKODUgR3JlZWR5CjEyMCBCYWNrdHJhY2tpbmcgRHluYW1pY19Qcm9ncmFtbWluZwo4MCBHcmVlZHkgQmFja3RyYWNraW5n
300 Backtracking Dynamic_Programming Greedy
125 Dynamic_Programming
35 Backtracking
85 Greedy
120 Backtracking Dynamic_Programming
80 Greedy Backtracking