let reps (p : t_partition) : int list =
  let rec reps_rec tas = function
    | c::cs -> reps_rec ((List.hd c)::tas) cs
    | [] -> tas
  in
  reps_rec [] p