code: def rcmk_perm(g):
      r"""Return nodes permutation according to ``'rcmk'`` algorithm.
  
      For internal use.
  
      Parameters
      ----------
      g : DGLGraph
          The homogeneous graph.
  
      Returns
      -------
      iterable[int]
          The nodes permutation.
      """
      fmat = "csr"
      allowed_fmats = sum(g.formats().values(), [])
      if fmat not in allowed_fmats:
          g = g.formats(allowed_fmats + [fmat])
      csr_adj = g.adj_external(scipy_fmt=fmat)
      perm = sparse.csgraph.reverse_cuthill_mckee(csr_adj)
      return perm.copy()
  
imports: import copy
  from collections.abc import Iterable, Mapping
  import numpy
  import scipy.sparse
  import scipy.sparse.linalg
  from ..utils import version
  from ..None import backend, batch, convert, function, ndarray, subgraph, utils
  from .._ffi.function import _init_api
  from ..base import dgl_warning, DGLError, EID, NID
  from ..frame import Frame
  from ..heterograph import DGLGraph
  from ..heterograph_index import create_heterograph_from_relations, create_metagraph_index
  from ..partition import metis_partition, metis_partition_assignment, partition_graph_with_halo
  from ..sampling.neighbor import sample_neighbors
label_desc: Use image node_id 33 for calling a global function with example usage: rcmk_perm(g) and returns: perm