排队布局

排队布局

Description

当排队等候喂食时,奶牛喜欢和它们的朋友靠近些。FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。即使说,如果我们想象奶牛是站在一条数轴上的话,允许有两头或更多奶牛拥有相同的横坐标。
一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数L。另一方面,一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数D。给出ML条关于两头奶牛间有好感的描述,再给出MD条关于两头奶牛间存有反感的描述。(1<=ML,MD<=10000,1<=L,D<=1000000)
你的工作是:如果不存在满足要求的方案,输出-1;如果1号奶牛和N号奶牛间的距离可以任意大,输出-2;否则,计算出在满足所有要求的情况下,1号奶牛和N号奶牛间可能的最大距离。

Format

Input

第一行:三个空间分隔的整数:N,ML,和MD。  
第二行至第ML+1行:每行包含三个空间分隔的正整数:A,B和D(其中1<= A<B<=N)。表示牛A和牛B至多相隔D的距离。
第ML+2至第ML+MD+1行:每行包含三个空间分隔的正整数:A,B和D(其中1<= A<B<=N)。表示牛A和牛B至少相隔D的距离。

Output

输出一个整数。  
如果不可能安排奶牛的布局,输出-1。  
如果奶牛1和奶牛N可以相距任意距离,输出-2。  否则输出奶牛1和奶牛N之间的最大距离。

Sample 1

Input

4 2 1
1 3 10
2 4 20
2 3 3

Output

27

【样例解析】
四只奶牛分别在0,7,10,27。

Limitation

1s, 64MiB for each test case.

Source

Usaco2005 Dec, bzoj1731