pub fn decompose(graph: &[Vec<usize>]) -> Vec<usize>