fn backtrack<T>(a: &[T], b: &[T]) -> Vec<(usize, usize, usize, usize)>where
    T: PartialEq,