农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。
他想把牛奶送到$T$ 个城镇,编号为$1∼T$。
这些城镇之间通过 $R$ 条道路 (编号为 $1$ 到 $R$) 和 $P$ 条航线 (编号为 $1$ 到 $P$) 连接。
每条道路 $i$ 或者航线 $i$ 连接城镇 $Ai$ 到 $Bi$,花费为 $Ci$。
对于道路,$0≤Ci≤10,000$;然而航线的花费很神奇,花费 $Ci$ 可能是负数($−10,000≤Ci≤10,000$)。
道路是双向的,可以从 $Ai$到 $Bi$,也可以从 $Bi$ 到 $Ai$,花费都是 $Ci$。
然而航线与之不同,只可以从 $Ai$到 $Bi$。
事实上,由于最近恐怖主义太嚣张,为了社会和谐,出台了一些政策:保证如果有一条航线可以从$Ai$ 到 $Bi$,那么保证不可能通过一些道路和航线从 $Bi$ 回到 $Ai$。
由于约翰的奶牛世界公认十分给力,他需要运送奶牛到每一个城镇。
他想找到从发送中心城镇 $S$ 把奶牛送到每个城镇的最便宜的方案。
输入格式
第一行包含四个整数 $T,R,P,S$。
接下来 $R$ 行,每行包含三个整数(表示一个道路)$Ai,Bi,Ci$。
接下来 $P$ 行,每行包含三个整数(表示一条航线)$Ai,Bi,Ci$。
输出格式
第 $1..T$ 行:第 $i$ 行输出从 $S$ 到达城镇 $i$ 的最小花费,如果不存在,则输出 NO PATH。
样例输入
6 3 3 4
1 2 5
3 4 5
5 6 10
3 5 -100
4 6 -100
1 3 -10
样例输出
NO PATH
NO PATH
5
0
-95
-100
提示
样例说明
一共六个城镇。在 1 和 2,3 和 4,5 和 6 之间有道路,花费分别是 5,5,10。同时有三条航线:3→5,4→6 和 1→3,花费分别是 -100,−100,−10。FJ 的中心城镇在城镇 4。FJ 的奶牛从 4 号城镇开始,可以通过道路到达 3 号城镇。然后他们会通过航线达到 5 和 6 号城镇。但是不可能到达 1 和 2 号城镇。
数据范围:
对于全部数据,1≤T≤2.5×10^4,1≤R,P≤5×10^4,1≤Ai,Bi,S≤T。保证对于所有道路,0≤Ci≤10^4,对于所有航线,−10^4≤Ci≤10^4 。