import copy


f = open('input.txt', 'r')
# f = open('test.txt', 'r')
# f = open('test2.txt', 'r')
content = f.read()
lines = content.splitlines()
modules =  {}

for line in lines:
    parts = line.split(" -> ")
    outputs = parts[1].replace(" ", "").split(",")
    
    if "%" == parts[0][0]:
        modules[parts[0][1:]] = {"type": parts[0][0], "state": False, "outputs": outputs}
    elif "&" == parts[0][0]:
        modules[parts[0][1:]] = {"type": parts[0][0], "in_states": {}, "outputs": outputs}
    else:
        modules[parts[0]] = {"type": "", "outputs": outputs}

for mod in modules:
    for i in modules[mod]["outputs"]:
        if i in modules and modules[i]["type"] == "&":
            modules[i]["in_states"][mod] = False

ins = [{"too": "broadcaster", "from": "button", "signal": "low"}]
outs = []

low_pulses = 0
high_pulses = 0

for button_presses in range(1000000):
    ins = [{"too": "broadcaster", "from": "button", "signal": "low"}]
    while len(ins) != 0:
        # print(ins)
        # print(modules)
        outs = []
        for line in ins:
            if line["signal"] == "low":
                low_pulses += 1
            elif line["signal"] == "high":
                high_pulses += 1
                
            if line["too"] == "rx" and line["signal"] == "low":
                out = []
                print(button_presses)
                break
                
            if line["too"] not in modules: continue
            
            if modules[line["too"]]["type"] == "":
                for out in modules[line["too"]]["outputs"]:
                    outs.append({"too": out, "from": line["too"], "signal": line["signal"]})
                    
            elif modules[line["too"]]["type"] == "%":
                if line["signal"] == "low":
                    modules[line["too"]]["state"] = not modules[line["too"]]["state"]
                    sig = "high" if modules[line["too"]]["state"] else "low"
                    for out in modules[line["too"]]["outputs"]:
                        outs.append({"too": out, "from": line["too"], "signal": sig})
            
            elif modules[line["too"]]["type"] == "&":
                modules[line["too"]]["in_states"][line["from"]] = line["signal"] == "high"
                all_states_high = True
                for state in modules[line["too"]]["in_states"]:
                    if modules[line["too"]]["in_states"][state] != True:
                        all_states_high = False
                        break
                sig = "low" if all_states_high else "high"
                for out in modules[line["too"]]["outputs"]:
                    outs.append({"too": out, "from": line["too"], "signal": sig})
        ins = copy.deepcopy(outs)
                    
        



print(low_pulses*high_pulses)
print(low_pulses, high_pulses)

f.close()