static void Main(string[] args)
    {
        var trainers = new List <Trainer>();

        string input;

        while ((input = Console.ReadLine()) != "Tournament")
        {
            var tokens = input.Split();

            string trainerName     = tokens[0];
            string pokemonName     = tokens[1];
            string pokemontElement = tokens[2];
            int    pokemonHealth   = int.Parse(tokens[3]);

            if (!trainers.Any(t => t.Name == trainerName))
            {
                trainers.Add(new Trainer(trainerName));
            }

            Pokemon pokemon = new Pokemon(pokemonName, pokemontElement, pokemonHealth);
            Trainer trainer = trainers.First(t => t.Name == trainerName);
            trainer.AddPokemon(pokemon);
        }

        while ((input = Console.ReadLine()) != "End")
        {
            foreach (var trainer in trainers)
            {
                if (trainer.Pokemons.Any(p => p.Element == input))
                {
                    trainer.AddBadge();
                }
                else
                {
                    trainer.ReduceHealth();
                    trainer.RemoveDead();
                }
            }
        }

        foreach (var trainer in trainers.OrderByDescending(t => t.Badges))
        {
            Console.WriteLine(trainer);
        }
    }