【样例解释】

解释其中的部分询问;下面的解释中用(a,b;t,v)表示在 t 时刻出现的服务器 a 和 b 之间的重要度为 v 的请求:
对于第一个询问(在时刻 1),此时没有任何请求,输出 -1。
对于第四个询问(在时刻 6),此时有两条交互 (8,13;2,3),(9,12;3,5),所有询问均经过 2号服务器,输出 -1。
对于第五个询问(在时刻 8),此时有三条交互(8,13;2,3), (9,12;3,5),(10,12;7,1),只有交互(10,12;7,1) 没有经过 2 号服务器,因此输出其重要度 1。
对于最后一个询问(在时刻 23),此时有三条交互 (9,5;12,6),(9,12;16,4),(10,5;17,7)。当 3号服务器出现故障时,只有交互 (9,5;12,6) 没有经过 3 号服务器,因此输出 6。
【数据范围】
对于 20%的数据,n, m ≤ 1000。
对于 30%的数据,m ≤ 2000。
另有 20%的数据,第一次事件必定是加入重要度最大的交互,且没有 type=1 的事件。
另有 20%的数据,树是一条链,且满足 i 与 i+1 之间有边。
对于 100%的数据,2 ≤ n ≤ 10^5, 1 ≤ m ≤ 2×10^5,其他的所有输入值不超过 10^9。
为了便于你分辨第三类数据(即第一次事件必定加入重要度最大的交互),规定这条交互的重要度为 10^9。而在其他类型的数据中,任何交互的重要度都小于该值。
【编译命令】
对于c++语言: g++ -o network network.cpp –lm
对于c语言: gcc -o network network.c –lm
对于pascal语言: fpc network.pas