해킹

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

네트워크 안에는 NN개의 컴퓨터가 존재한다. 각 컴퓨터는 1,2,,N1, 2, \cdots, N번 컴퓨터로 번호가 붙어있다. 서로 다른 두 컴퓨터 쌍을 연결하는 MM개의 통신망이 존재한다. ii번째 통신망은 S_iS\_i번 컴퓨터와 E_iE\_i번 컴퓨터를 잇고 있다. 두 컴퓨터 쌍을 연결하는 통신망은 최대 하나 존재한다.

당신은 해커이다. XX개의 컴퓨터를 동시에 해킹하여 돈을 얻고자 한다. ii번 컴퓨터를 해킹하면, 11분 뒤부터 이 컴퓨터에서 매분 A_iA\_i만큼의 돈을 가져올 수 있다.

정부는 당신이 해킹하고 나서 0.50.5분 뒤 B_1,B_2,,B_YB\_1, B\_2, \cdots, B\_Y번 컴퓨터에 보안 시스템을 설치할 계획이다. 당신이 해킹한 컴퓨터에 보안 시스템이 설치되고 나면 더 이상 이 컴퓨터에서 돈을 가져올 수 없다. 또한, 보안 시스템은 통신망을 통해 연쇄적으로 전파된다. 어떤 컴퓨터에 보안 시스템이 설치되고 나면, 11분 뒤 이 컴퓨터에서 통신망으로 직접 연결된 모든 컴퓨터에 보안 시스템이 자동으로 설치된다. 0.50.5분 뒤 보안 시스템이 설치될 예정인 컴퓨터를 해킹한다면 이 컴퓨터에서 돈을 가져올 수 없음에 유의하라.

정부의 계획을 알게 된 당신은 보안 시스템을 피해 최대한 많은 돈을 얻을 방법을 찾으려고 한다. 당신이 해킹한 컴퓨터들이 모두 보안 시스템에 의해 돈을 얻을 수 없게 되기 전까지 얼마나 많은 돈을 얻을 수 있는지 찾아보자.

입력

첫 번째 줄에 NN, MM, XX, YY가 공백을 사이에 두고 주어진다.

두 번째 줄에는 A_1,A_2,,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다.

세 번째 줄부터 MM개의 줄에는 네트워크상의 통신망이 주어지는데, 이 중 i(1iM)i(1 \leq i \leq M)번째 줄에는 S_iS\_iE_iE\_i가 공백을 사이에 두고 주어진다.

다음 줄에는 B_1,B_2,,B_YB\_1, B\_2, \cdots, B\_Y가 공백으로 구분되어 주어진다.

출력

최대로 얻을 수 있는 돈을 출력한다. 만약 무한히 많은 돈을 얻을 수 있다면 대신 1-1을 출력한다.

제한

  • 1N500,0001 \leq N \leq 500\\,000
  • 0M500,0000 \leq M \leq 500\\,000
  • 1X,YN1 \leq X, Y \leq N
  • 0A_i500,0000 \leq A\_i \leq 500\\,000 (1iN1 \leq i \leq N)
  • 1S_i,E_iN,S_iE_i1 \leq S\_i, E\_i \leq N, S\_i ≠ E\_i (1iM1 \leq i \leq M)
  • iji \neq j 이면 (S_i,E_i)(S_j,E_j),(S_i,E_i)(E_j,S_j)(S\_i, E\_i) ≠ (S\_j, E\_j), (S\_i, E\_i) ≠ (E\_j, S\_j)
  • 1B_iN1 \leq B\_i \leq N (1iY1 \leq i \leq Y)
  • iji \neq j 이면 B_iB_jB\_i ≠ B\_j