There are `n` cities connected by some number of flights. You are given an array `flights` where `flights[i] = [from_i, to_i, price_i]` indicates that there is a flight from city `from_i` to city `to_i` with cost `price_i`.
You are also given three integers `src`, `dst`, and `k`. Return **the cheapest price** from `src` to `dst` with at most `k` stops. If there is no such route, return `-1`.
A "stop" is an intermediate city - so at most `k` stops means at most `k + 1` edges.