static void Main(string[] args)
        {
            Dictionary <string, string> container = new Dictionary <string, string>();
            Dictionary <string, Teams>  teams     = new Dictionary <string, Teams>();
            List <string> joinedMem = new List <string>();

            int loops = int.Parse(Console.ReadLine());

            for (int i = 0; i < loops; i++)
            {
                string   input       = Console.ReadLine();
                string[] split       = input.Split('-');
                string   creatorName = split[0];
                string   teamName    = split[1];

                Teams creatorAndTeam = new Teams();
                creatorAndTeam.Creator  = creatorName;
                creatorAndTeam.TeamName = teamName;

                if (container.ContainsKey(teamName))
                {
                    Console.WriteLine($"Team {teamName} was already created!");
                    continue;
                }

                if (container.ContainsValue(creatorName))
                {
                    Console.WriteLine($"{creatorName} cannot create another team!");
                    continue;
                }

                Console.WriteLine($"Team {teamName} has been created by {creatorName}!");

                teams.Add(teamName, creatorAndTeam);
                container.Add(teamName, creatorName);
                joinedMem.Add(creatorName);
            }
            while (true)
            {
                string input = Console.ReadLine();
                if (input == "end of assignment")
                {
                    break;
                }
                string[] split      = input.Split('-', '>');
                string   name       = split[0];
                string   clubWanted = split[2];

                Teams team = new Teams();
                team.TeamName = clubWanted;
                team.Members  = new List <string>();

                if (!teams.ContainsKey(clubWanted))
                {
                    Console.WriteLine($"Team {clubWanted} does not exist!");
                    continue;
                }

                if (joinedMem.Contains(name))
                {
                    Console.WriteLine($"Member {name} cannot join team {clubWanted}!");
                    continue;
                }

                joinedMem.Add(name);
                if (teams[clubWanted].Members == null)
                {
                    teams[clubWanted].Members = new List <string>();
                    teams[clubWanted].Members.Add(name);
                }
                else
                {
                    teams[clubWanted].Members.Add(name);
                }
            }

            List <string> teamsToDisband = new List <string>();

            foreach (Teams member in teams.Values)
            {
                if (member.Members == null)
                {
                    teamsToDisband.Add(member.TeamName);
                }
            }
            for (int i = 0; i < teamsToDisband.Count; i++)
            {
                teams.Remove(teamsToDisband[i]);
            }

            teams.OrderByDescending(x => x.Value.Members);

            foreach (Teams item in teams.Values.OrderBy(x => x.TeamName))
            {
                Console.WriteLine($"{item.TeamName}");
                Console.WriteLine($"- {item.Creator}");
                for (int i = 0; i < item.Members.Count; i++)
                {
                    Console.WriteLine($"-- {item.Members[i]}");
                }
            }

            Console.WriteLine("Teams to disband: ");

            for (int i = 0; i < teamsToDisband.Count; i++)
            {
                Console.WriteLine(teamsToDisband[i]);
            }
        }