public IList <IList <int> > GroupThePeople(int[] groupSizes) { if (groupSizes.Length < 1 || groupSizes.Length > 500) { return(null); } var manager = new GroupManager(); for (int i = 0; i < groupSizes.Length; i++) { var newPerson = new Person(i, groupSizes[i]); manager.AddPersonToCorrectGroup(newPerson); } return(manager.GetGroupIds()); }