let find_team_numbers strat possib numstud = 
  let lists = find_all_counters possib numstud in 
    if ((List.length lists)=0) then failwith "No solution for finding teams";
  let ll = List.map (fun t -> ((List.length t),t)) lists in
  let ml = List.sort (fun u1 u2 -> compare (fst u1) (fst u2)) ll in 
  let nl = apply_goal strat ml in
  let ul = remove_doubles (snd nl) in 
    List.map (fun t -> 
        (t,(List.length (select (fun v -> v = t) (snd nl)))))
      ul