Finds the best groups: no class clashes, at most 3 classes a day, then most off days and fewest gaps.