| 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) |