let find_members_of_group_project (gl:student list) (gnum:int)
    (padd:paddress) =  
  debug (Printf.sprintf "-- Finding the members of the group %d" gnum);
  (* Create project if not already existing *)
  ignore(group_find_project_at_address (get_group gnum) padd);
  (* Computing teams numbers *)
  let tnl = find_team_numbers (!ref_strategy) 
              (!ref_team_possibilities) (get_group_size gnum) in
  (* Printing team numbers *)
  if (!verbose_mode) then begin
    Printf.printf "-- Sizes of teams for group %d : " gnum;
    print_string (convert_int_int_list_to_string tnl);
    print_newline();
  end;
  if (!do_assign_resp) then begin
    (* Take into account the responsibilities *)
    let snl = List.map (fun (u,v) -> (1,v)) tnl in 
      find_resp_by_group_project gl gnum padd Capt crit_capt snl; 
      find_resp_by_group_project gl gnum padd Secr crit_secr snl;
      let pnl = List.map (fun (u,v) -> (u-2,v)) tnl in
        find_resp_by_group_project gl gnum padd Prog crit_base pnl;
  end else begin
    (* Or just find some team members *)
    find_resp_by_group_project gl gnum padd Prog crit_base tnl
  end