import re | |||||
import sys | |||||
def recurse(rule): | |||||
return re.sub(r'(\d+)', lambda m: f'({recurse(rules[m.group(1)])})', rule) | |||||
text = sys.stdin.read() | |||||
rules, stuff = text.split('\n\n') | |||||
rules = dict([ln.split(': ') for ln in rules.splitlines()]) | |||||
ans = 0 | |||||
rex = re.compile(recurse(rules['0']).replace('"', '').replace(' ', '') + '$') | |||||
for line in text.splitlines(): | |||||
ans += bool(rex.match(line)) | |||||
print(ans) |