let mut best = adj .values() .map(|bb| { bb.iter().fold(Vec::::new(), |mut clique, b| { if clique.iter().all(|c| adj[b].contains(c.as_str())) { clique.push(b.to_string()); } clique }) }) .max_by_key(|c| c.len()) .unwrap(); best.sort(); println!( "{}", best.iter() .map(ToString::to_string) .collect::>() .join(",") );