You are given a network of n nodes, labeled from 1 to n. You are also given times, a list of travel times as directed edges times[i] = (u_i, v_i, w_i), where u_i is the source node, v_i is the target node, and w_i is the time it takes for a signal to travel from source to target.
We will send a signal from a given node k. Return the minimum time it takes for all the n nodes to receive the signal. If it is impossible for all the n nodes to receive the signal, return -1.
1 <= k <= n <= 1001 <= times.length <= 6000times[i].length == 31 <= u_i, v_i <= nu_i != v_i0 <= w_i <= 100(u_i, v_i) are unique (i.e., no multiple edges)times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 22times = [[1,2,1]], n = 2, k = 11times = [[1,2,1]], n = 2, k = 2-1