#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
#define saleh \
ios_base::sync_with_stdio(false); \
cin.tie(nullptr);
#define ll long long
#define all(v) (v).begin(), (v).end()
const ll md = 1e9 + 7;
vector<string> str[21];
vector<ll> money(21);
int main()
{
saleh;
int ind = 0;
string line;
set<string> all_topics;
while (getline(cin, line))
{
stringstream ss(line);
int number;
ss >> number;
money[ind] = number;
string word;
while (ss >> word)
{
str[ind].push_back(word);
all_topics.insert(word);
}
ind++;
}
map<string, int> id;
int idd = 0;
for (auto a : all_topics)
{
id[a] = idd++;
}
vector<ll> v(ind, 0);
for (int i = 0; i < ind; i++)
{
for (auto a : str[i])
{
v[i] |= (1 << id[a]);
}
}
vector<ll> dp((1 << idd), 1e10);
for (int i = 0; i < ind; i++)
{
dp[v[i]] = min(money[i] , dp[v[i]]);
}
dp[0] = 0;
for (int j = 0; j < ind; j++)
{
for (int i = 1; i < (1 << idd); i++)
{
dp[i|v[j]] = min(dp[i|v[j]],dp[i]+money[j]);
}
}
cout<<dp[(1<<idd)-1];
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHNhbGVoICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBcCiAgICBjaW4udGllKG51bGxwdHIpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGFsbCh2KSAodikuYmVnaW4oKSwgKHYpLmVuZCgpCgpjb25zdCBsbCBtZCA9IDFlOSArIDc7CnZlY3RvcjxzdHJpbmc+IHN0clsyMV07CnZlY3RvcjxsbD4gbW9uZXkoMjEpOwppbnQgbWFpbigpCnsKICAgIHNhbGVoOwogICAgaW50IGluZCA9IDA7CiAgICBzdHJpbmcgbGluZTsKICAgIHNldDxzdHJpbmc+IGFsbF90b3BpY3M7CiAgICB3aGlsZSAoZ2V0bGluZShjaW4sIGxpbmUpKQogICAgewogICAgICAgIHN0cmluZ3N0cmVhbSBzcyhsaW5lKTsKICAgICAgICBpbnQgbnVtYmVyOwogICAgICAgIHNzID4+IG51bWJlcjsKICAgICAgICBtb25leVtpbmRdID0gbnVtYmVyOwoKICAgICAgICBzdHJpbmcgd29yZDsKICAgICAgICB3aGlsZSAoc3MgPj4gd29yZCkKICAgICAgICB7CiAgICAgICAgICAgIHN0cltpbmRdLnB1c2hfYmFjayh3b3JkKTsKICAgICAgICAgICAgYWxsX3RvcGljcy5pbnNlcnQod29yZCk7CiAgICAgICAgfQogICAgICAgIGluZCsrOwogICAgfQoKICAgIG1hcDxzdHJpbmcsIGludD4gaWQ7CiAgICBpbnQgaWRkID0gMDsKICAgIGZvciAoYXV0byBhIDogYWxsX3RvcGljcykKICAgIHsKICAgICAgICBpZFthXSA9IGlkZCsrOwogICAgfQoKICAgIHZlY3RvcjxsbD4gdihpbmQsIDApOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmQ7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGF1dG8gYSA6IHN0cltpXSkKICAgICAgICB7CiAgICAgICAgICAgIHZbaV0gfD0gKDEgPDwgaWRbYV0pOwogICAgICAgIH0KICAgIH0KICAgIHZlY3RvcjxsbD4gZHAoKDEgPDwgaWRkKSwgMWUxMCk7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmQ7IGkrKykKICAgIHsgICAKICAgICAgICBkcFt2W2ldXSA9IG1pbihtb25leVtpXSAsIGRwW3ZbaV1dKTsgICAKICAgICAgICAgICAgCiAgICB9CiAgICAKICAgIGRwWzBdID0gMDsKICAgIGZvciAoaW50IGogPSAwOyBqIDwgaW5kOyBqKyspCiAgICB7ICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCAoMSA8PCBpZGQpOyBpKyspCiAgICAgICAgeyAgIAogICAgICAgICAgICBkcFtpfHZbal1dID0gbWluKGRwW2l8dltqXV0sZHBbaV0rbW9uZXlbal0pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGRwWygxPDxpZGQpLTFdOwogICAgCn0K
MzAwIEJhY2t0cmFja2luZyBEeW5hbWljX1Byb2dyYW1taW5nIEdyZWVkeQoxMjUgRHluYW1pY19Qcm9ncmFtbWluZwozNSBCYWNrdHJhY2tpbmcKODUgR3JlZWR5CjEyMCBCYWNrdHJhY2tpbmcgRHluYW1pY19Qcm9ncmFtbWluZwo4MCBHcmVlZHkgQmFja3RyYWNraW5n
300 Backtracking Dynamic_Programming Greedy
125 Dynamic_Programming
35 Backtracking
85 Greedy
120 Backtracking Dynamic_Programming
80 Greedy Backtracking