#5422. 最大愉悦值

内存限制:256 MiB 时间限制:20 Sec

题目描述

小焰焰有N个妹纸,编号为1~n。N个妹纸的家之间由N-1条双向道路连接,且任意两个妹纸家可以互相到达。为了后
宫和谐,小焰焰每次都会选择两个妹纸一起玩耍,小焰焰对每一个妹纸有一个喜爱程度xi,每次玩耍小焰焰获得的
愉悦值可以通过公式min(xi,xj)*dis(I,j)计算.  dis(I,j)表示妹纸I和妹纸j之间的路径长度。由于这个世界充满
了可能性,所以小焰焰对妹纸的喜爱程度以及城市道路的长度都有可能发生改变,小焰焰希望计算出每次他能获得
的最大愉悦值,但是他忙于泡新的妹纸无暇编程解决这一问题,于是他把这个问题交给了你。

输入格式

第一行两个正整数n、m,分别表示妹纸数和操作数。
第二行n个整数,第i个整数xi表示小焰焰对妹纸xi的喜爱程度
接下来n-1行,每行三个整数ai、bi、ci,表示妹纸ai和妹纸bi间有一条ci的道路。
接下来m行,每行是如下格式的一种
1:A ai bi t:表示妹纸ai到妹纸bi的路径上每一条道路加上t 
2:C p x:表示妹纸p的喜爱程度改为x
3:Q:表示询问当前小焰焰当前选择两个妹纸所能获得的最大愉悦值(见题目描述)
n<=3000,m<=100000,询问数小于等于50
1<=ai、bi、p<=n,1<=x、ci<=10000,|t|<=10000,数据保证任何时刻道路长度大于0

输出格式

对于每一个Q,输出一个整数为最大愉悦值

样例

样例输入


			
3 5
1 2 3
1 3 3
2 3 2
Q
C 2 3
Q
A 1 3 2
Q

样例输出


			
5
6
7

数据范围与提示