docs: def community_neighbors(c_j, reverse_index_rows, unavailable_communities, unavailable_communities_counter):
      """
      Finds communities with shared nodes to a seed community. Called by mroc.
  
      Inputs:  - c_j: The seed community for which we want to find which communities overlap.
               - reverse_index_rows: A node to community indicator matrix.
               - unavailable_communities: A set of communities that have already either been merged or failed to merge.
               - unavailable_communities_counter: The number of such communities.
  
      Outputs: - indices: An array containing the communities that exhibit overlap with the seed community.
      """
      indices = list()
      extend = indices.extend
      for node in c_j:
          extend(reverse_index_rows[node])
  
      indices = np.array(indices)
      indices = np.setdiff1d(indices, unavailable_communities[:unavailable_communities_counter+1])
  
      return indices