#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); vector counts, copies; string line; while (getline(cin, line) && !line.empty()) { int start = line.find(':'); int bar = line.find('|'); string left = line.substr(start + 2, bar - start - 3); string right = line.substr(bar + 2); istringstream lss(left), rss(right); set ls; int count = 0; while (!lss.eof()) { int n; lss >> n; ls.insert(n); } while (!rss.eof()) { int n; rss >> n; if (ls.find(n) != ls.end()) count++; } counts.push_back(count); copies.push_back(1); } int ret = 0; for (int cn = 0; cn < counts.size(); cn++) { ret += copies[cn]; int n = cn; for (int i = 0; i < counts[cn]; i++) { if (++n == copies.size()) break; copies[n] += copies[cn]; } } cout << ret << '\n'; }