포닉스는 마침내 보물 지도를 손에 넣었다! 포닉스는 이 보물 지도를 가지고 보물이 가득한 미궁 속으로 들어갔다.
이 보물 지도에 따르면 미궁은 N개의 방과 두 방을 잇는 M개의 일방통행 길로 이루어져 있다. 또한 각 방은 1번부터 N번까지의 번호로 표현되며, i번 방에는 가치 b_i의 보물이 있다고 적혀 있다. 이 미궁은 1번 방에서 입장할 수 있고, 탈출 키트를 이용하여 아무 방에서나 미궁에서 탈출할 수 있다. 하지만 탈출을 하게 되면 미궁이 무너져 내려 다시 들어가 보물을 찾는 것은 불가능하다.
또한 이 미궁의 a번 방에는 숨겨진 레버가 존재한다. 이 방에 가서 레버를 당기게 되면, x번 방과 y번 방을 잇는 숨겨진 양방향 통로가 등장한다.
포닉스는 보물의 가치의 합이 최대가 되도록 보물들을 가지고 나오려고 한다. 포닉스는 얼마나 많은 가치의 보물을 얻을 수 있을까?
첫 번째 줄에 방의 수 N과 일방통행 길의 수 M이 공백으로 구분되어 주어진다. (1≤N≤100 000;1≤M≤300 000)
두 번째 줄에 각 방의 보물의 가치를 나타내는 N개의 정수 b_1,b_2,…,b_N가 공백으로 구분되어 주어진다. (0≤b_i≤109)
세 번째 줄부터 M개의 줄에 걸쳐 일방통행 길의 시작 방과 도착 방을 의미하는 2개의 정수 u_i, v_i가 공백으로 구분되어 주어진다. (1≤u_i,v_i≤N;u_i=v_i)
서로 다른 두 방 p,q에 대해 p를 시작 방으로 하고 q를 도착 방으로 하는 일방통행 길은 최대 1개임이 보장된다. (1≤p,q≤N;p=q)
M+3번째 줄에 레버가 있는 방 번호 a와 레버를 당길 시 등장하는 양방향 통로의 양 끝 방을 의미하는 2개의 정수 x, y가 공백으로 구분되어 주어진다. x번 방에서 y번 방으로, 또는 y번 방에서 x번 방으로 향하는 일방통행 길은 이미 존재할 수 있다. (1≤a,x,y≤N;x=y)
한번의 탐험으로 얻을 수 있는 보물들의 가치 합의 최댓값을 출력한다.