n = int(input())

dictionary_hp = {}
dictionary_mp = {}
for _ in range(n):
    line = input()
    line_split = line.split()
    hero_name = line_split[0]
    hp = int(line_split[1])
    mp = int(line_split[2])

    dictionary_hp[hero_name] = hp
    dictionary_mp[hero_name] = mp

while True:
    data = input()
    if data == "End":
        break

    data_split = data.split(" - ")
    command = data_split[0]
    hero_name = data_split[1]

    if command == "CastSpell":
        mp_needed = int(data_split[2])
        spell_name = data_split[3]
        if dictionary_mp[hero_name] > mp_needed:
            dictionary_mp[hero_name] -= mp_needed
            print(f"{hero_name} has successfully cast {spell_name} and now has {dictionary_mp[hero_name]} MP!")
        else:
            print(f"{hero_name} does not have enough MP to cast {spell_name}!")

    elif command == "TakeDamage":
        damage = int(data_split[2])
        attacker = data_split[3]

        dictionary_hp[hero_name] -= damage
        if dictionary_hp[hero_name] > 0:
            print(f"{hero_name} was hit for {damage} HP by {attacker} and now has {dictionary_hp[hero_name]} HP left!")
        else:
            del dictionary_hp[hero_name]
            del dictionary_mp[hero_name]
            print(f"{hero_name} has been killed by {attacker}!")

    elif command == "Recharge":
        amount = int(data_split[2])
        diff = abs(200 - dictionary_mp[hero_name])
        dictionary_mp[hero_name] += amount
        if dictionary_mp[hero_name] > 200:
            print(f"{hero_name} recharged for {min(diff, amount)} MP!")
            dictionary_mp[hero_name] = 200
        else:
            print(f"{hero_name} recharged for {max(200 - dictionary_mp[hero_name], amount)} MP!")

    else:
        amount = int(data_split[2])
        diff = abs(100 - dictionary_hp[hero_name])
        dictionary_hp[hero_name] += amount
        if dictionary_hp[hero_name] > 100:
            print(f"{hero_name} healed for {min(diff, amount)} HP!")
            dictionary_hp[hero_name] = 100
        else:
            print(f"{hero_name} healed for {max(100 - dictionary_hp[hero_name], amount)} HP!")

for hero_name in dictionary_hp.keys():
    print(hero_name)
    hp = dictionary_hp[hero_name]
    mp = dictionary_mp[hero_name]
    print(f"  HP: {hp}")
    print(f"  MP: {mp}")