private static void ParseWeaknessesAndImmunities(Day24Solver.Group group, string line)
        {
            var split = line.Split(';');

            foreach (var s in split)
            {
                var s2 = s.Trim();
                if (s2.StartsWith("weak to "))
                {
                    var weaknesses = s2.Substring(8).Split(", ");
                    foreach (var weakness in weaknesses)
                    {
                        group.Weaknesses.Add(weakness);
                    }
                }

                if (s2.StartsWith("immune to "))
                {
                    var immunities = s2.Substring(10).Split(", ");
                    foreach (var immunity in immunities)
                    {
                        group.Immunities.Add(immunity);
                    }
                }
            }
        }
        private static Day24Solver.Group ParseGroupWithWeaknessImmunities(Match match, Day24Solver.Group.GroupType type)
        {
            var units     = int.Parse(match.Groups[1].Value);
            var hitPoints = int.Parse(match.Groups[2].Value);
            var weaknessesAndImmunities = match.Groups[3].Value;
            var damage     = int.Parse(match.Groups[4].Value);
            var damageType = match.Groups[5].Value;
            var initiative = int.Parse(match.Groups[6].Value);
            var group      = new Day24Solver.Group(type, units, hitPoints, damage, damageType, initiative);

            ParseWeaknessesAndImmunities(group, weaknessesAndImmunities);
            return(group);
        }