인도의 도시 시루세리에서는 모든 도로가 일방통행이다. 도로가 만나는 모든 교차로에는 시루세리 은행의 현금 입출금기(ATM)가 하나씩 설치되어 있다. 이 도시에는 유명한 레스토랑 체인 아웃백 커리 하우스가 있는데, 각 지점은 교차로에만 있으며(모든 교차로에 지점이 있는 것은 아니다) 현금만 받는다.
시루세리에 사는 반디치는 오늘 오후 이 레스토랑에서 가족 파티를 열려고 한다. 가진 현금이 부족해서, 레스토랑으로 가는 길에 최대한 많은 현금을 ATM에서 인출하려고 한다. 그는 자신의 집이 있는 교차로에서 출발해 차로 이동하며, 지나가는 교차로의 ATM에 들어 있는 현금을 전부 인출한다. 최종 목적지는 아웃백 커리 하우스 지점이 있는 교차로 중 어느 곳이든 상관없다.
반디치는 각 ATM에 들어 있는 현금 액수를 미리 알고 있다. 이동 중 같은 도로나 교차로를 여러 번 지날 수 있지만, ATM의 현금은 다시 채워지지 않으므로 이미 방문했던 교차로를 다시 지날 때에는 인출할 현금이 없다. 즉, 각 교차로의 현금은 처음 방문할 때 한 번만 인출된다.
예를 들어 아래 예제 입력의 도시에는 교차로가 6개 있다. 현금 인출을 1번 교차로에서 시작한다면, 반디치는 $1 \to 2 \to 4 \to 1 \to 2 \to 3 \to 5$의 경로로 이동하여 총 47의 현금을 인출할 수 있다(1번과 2번 교차로는 다시 지나가지만 현금은 한 번씩만 인출된다).
출발 교차로에서 어떤 레스토랑까지 이동하면서 인출할 수 있는 현금의 최대 액수를 구하는 프로그램을 작성하시오.
첫째 줄에 교차로의 수 $N$과 도로의 수 $M$이 주어진다($N, M \le 500000$). 교차로는 $1$번부터 $N$번까지 번호가 매겨져 있다.
다음 $M$개의 줄에는 각 도로의 정보가 한 줄에 하나씩 주어지며, 각 줄에는 그 도로의 시작 교차로 번호와 끝 교차로 번호를 나타내는 두 정수가 있다. 도로는 시작 교차로에서 끝 교차로로 향하는 일방통행이다.
그다음 $N$개의 줄에는 $1$번 교차로부터 차례대로 각 교차로의 ATM에 들어 있는 현금 액수가 한 줄에 하나씩 주어진다. 각 액수는 $0$ 이상 $4000$ 이하의 정수이다.
그다음 줄에는 두 정수 $S$와 $P$가 주어진다. $S$는 출발 교차로(현금 인출을 시작하는 교차로)의 번호이고, $P$는 레스토랑의 수이다($1 \le P \le N$). 마지막 줄에는 레스토랑이 있는 교차로의 번호를 나타내는 $P$개의 정수가 주어진다.
모든 입력에서, 출발 교차로로부터 일방통행 도로를 따라 도달할 수 있는 레스토랑이 항상 하나 이상 존재한다.
출발 교차로에서 어떤 레스토랑까지 이동하면서 인출할 수 있는 현금의 최대 액수를 정수 하나로 출력한다.