{"raw_statement":[{"iden":"background","content":"某校开展了同学们喜闻乐见的阳光长跑活动。为了能“为祖国健康工作五十年”，同学们纷纷离开寝室，离开教室，离开实验室，到操场参加 $3000$ 米长跑运动。一时间操场上熙熙攘攘，摩肩接踵，盛况空前。"},{"iden":"statement","content":"为了让同学们更好地监督自己，学校推行了刷卡机制。学校中有 $n$ 个地点，用 $1\\sim n$ 的整数表示，每个地点设有若干个刷卡机。\n\n有以下三类事件：\n1. 修建了一条连接 $A$ 地点和 $B$ 地点的跑道；\n2. $A$ 地点的刷卡机台数变为了 $B$；\n3. 进行了一次长跑。问一个同学从 $A$ 地点出发，最后到达 $B$ 地点最多可以刷卡多少次。具体的要求如下：\n   - 当同学到达一个地点时，他可以在这里的每一台刷卡机上都刷卡。但每台刷卡机只能刷卡一次，即使多次到达同一地点也不能多次刷卡。为了安全起见，每条跑道都需要设定一个方向，这条跑道只能按照这个方向单向通行。最多的刷卡次数即为在任意设定跑道方向，按照任意路径从 $A$ 地点到 $B$ 地点能刷卡的最多次数。"},{"iden":"input","content":"第一行输入两个正整数 $n,m$；\n\n第二行输入 $n$ 个正整数，第 $i$ 个正整数为第 $i$ 个地点的刷卡机个数。\n\n接下来 $m$ 行，每行包含三个非负整数 $P,A,B$ 代表一个事件，$P$ 为事件类型，$A,B$ 为事件的两个参数。"},{"iden":"output","content":"对于每个 $P=3$ 的事件输出一行，包含一个整数，为按照任意路径从 $A$ 地点到 $B$ 地点能刷卡的最多次数。如果不能到达，输出 $-1$。"},{"iden":"note","content":"对于所有数据，$1\\leq m\\leq 5n$，$1\\leq n\\leq 1.5\\times 10^5$。\n\n保证最初所有地点之间都没有跑道。\n\n每行相邻的两个数之间均用一个空格隔开。\n\n表示地点编号的数均在 $1$ 到 $n$ 之间，每个地点的刷卡机台数始终不超过 $10^4$，$P \\in \\{1,2,3\\}$。"}],"translated_statement":null,"sample_group":[["9 31\n10 20 30 40 50 60 70 80 90\n3 1 2\n1 1 3\n1 1 2\n1 8 9\n1 2 4\n1 2 5\n1 4 6\n1 4 7\n3 1 8\n3 8 8\n1 8 9\n3 8 8\n3 7 5\n3 7 3\n1 4 1\n3 7 5\n3 7 3\n1 5 7\n3 6 5\n3 3 6\n1 2 4\n1 5 5\n3 3 6\n2 8 180\n3 8 8\n2 9 190\n3 9 9\n2 5 150\n3 3 6\n2 1 210\n3 3 6","-1\n-1\n80\n170\n180\n170\n190\n170\n250\n280\n280\n270\n370\n380\n580"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}