You have a directed graph with N cities and M flights. Find these four values for paths starting at city 1 and ending at city N:
1. Shortest distance.
2. Number of shortest paths (mod 109+7).
3. Minimum flights on a shortest path.
4. Maximum flights on a shortest path. Constraints: N≤105, M ≤ 2×105. All four answers come from a single modified Dijkstra run where you maintain extra arrays alongside the distance array.