items = [] ops = [] decide = [] points = [] # garbage parser because i fucking hate this day already def readMonke(): input() items.append([int(s) for s in input()[18:].split(', ')]) op_l = input()[23:] op = op_l[0] arg = None self = op_l[2:] == "old" if not self: arg = int(op_l[2:]) if self and op == "*": ops.append(lambda x: x * x) elif not self and op == "*": ops.append(lambda x: x * arg) elif not self and op == "+": ops.append(lambda x: x + arg) else: raise "fuck shit piss" test = int(input()[21:]) onTrue = int(input()[29:]) onFalse = int(input()[30:]) decide.append(lambda x: onTrue if x % test == 0 else onFalse) points.append(0) while True: readMonke() try: input() except EOFError: break def doRound(): for monkey in range(len(items)): points[monkey] += len(items[monkey]) for item in items[monkey]: item = ops[monkey](item) // 3 items[decide[monkey](item)].append(item) items[monkey] = [] for _ in range(20): doRound() a, b = sorted(points)[-2:] print(a * b)