pub fn dulmage_mendelsohn_decomposition( l: usize, r: usize, edges: &[(usize, usize)], ) -> Vec<(Vec<usize>, Vec<usize>)>