양쪽으로 끝없이 이어지는 1차원 배열에서 진행하는 1인용 게임이 있다. 배열의 각 칸에는 정수 하나, + 기호, - 기호가 놓여 있거나 아무것도 놓여 있지 않다. 플레이어는 한 턴마다 배열에 남아 있는 정수를 모두 왼쪽으로 한 칸 또는 오른쪽으로 한 칸 옮길 수 있다. 기호는 움직이지 않는다.
점수는 0에서 시작한다. 정수 I가 기호 S가 놓인 칸으로 옮겨지면 그 정수는 배열에서 사라지고 점수가 S×I만큼 늘어난다. 이때 +는 +1, -는 −1로 계산한다.
플레이어는 원하는 순간에 게임을 멈출 수 있다.
아래 그림은 처음 배열과 오른쪽으로 두 번 옮긴 뒤의 배열을 보여 준다.

처음 배열이 주어질 때 플레이어가 얻을 수 있는 가장 큰 점수를 구하라.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 정수의 개수 N (1≤N≤100), + 기호의 개수 Np (1≤Np≤100), - 기호의 개수 Nm (1≤Nm≤100)이 주어진다. 이어지는 N개의 줄에는 i번째 정수의 위치 pi (−300≤pi≤300)와 값 vi (−9≤vi≤9)가 주어진다. 그다음 줄에는 + 기호 Np개의 위치가, 그다음 줄에는 - 기호 Nm개의 위치가 주어진다. 모든 위치는 −300 이상 300 이하이고, 정수와 기호를 통틀어 같은 위치에 놓인 원소는 없다. 0 0 0이 적힌 줄이 나오면 입력이 끝난다.
각 테스트 케이스마다 플레이어가 얻을 수 있는 가장 큰 점수를 한 줄에 출력한다.