There are `num_courses` courses 0..num_courses-1. `prerequisites[i] = [a, b]` means b must be taken before a. Return a valid order to finish all courses; if several exist, return the lexicographically smallest. Return an empty list if it is impossible.