#!/usr/bin/env python

import itertools
import re
import sys
from typing import Dict, List


def parse_rule(raw_rules: List[str]) -> str:
    parsed: Dict[int, str] = {}
    rules = {int(num): rule.strip() for num, rule in (i.split(":") for i in raw_rules)}

    for n, r in rules.items():
        if '"' not in r:
            continue
        parsed[n] = r.replace('"', "")

    while 0 not in parsed:
        for num in parsed:
            if num not in rules:
                continue
            rules.pop(num)

        for num, r in rules.items():
            nums = list(reversed(sorted(map(int, re.findall("(\\d+)", r)))))
            if all(n in parsed for n in nums):
                for n in nums:
                    r = re.sub(str(n), parsed[n], r)  # Bigger numbers replaced first
                r = r.replace(" ", "")
                parsed[num] = "(" + r + ")"
    return parsed[0]


def solve(raw: List[str]) -> int:
    pattern = re.compile(parse_rule(list(itertools.takewhile(len, raw))))

    return sum(
        pattern.fullmatch(line) is not None for line in itertools.dropwhile(len, raw)
    )


def main() -> None:
    input = [line.strip() for line in sys.stdin.readlines()]
    print(solve(input))


if __name__ == "__main__":
    main()