존스 씨는 모범적인 남편입니다. 토요일 아침마다 아내인 존스 부인은 슈퍼마켓에서 사 와야 할 물건 목록을 그에게 건네주고, 존스 씨는 언제나 가장 싼 브랜드를 골라 부탁받은 물건을 정확히 사 옵니다. 그런데 존스 씨는 통로가 손님으로 붐비는 토요일에 슈퍼마켓에 가는 것을 몹시 싫어합니다. 그래서 장 보는 방식을 바꾸려고 합니다. 목록에 있는 물건을 사려고 이리저리 되돌아다니는 대신, 각 통로를 한 번씩만 지나가면서 목록에 적힌 순서 그대로 물건을 집어 담으려고 합니다. 그는 이 새로운 방식의 장보기를 도와줄 프로그램을 여러분에게 부탁했습니다.
슈퍼마켓에서 살 수 있는 상품과 그 가격이 존스 씨가 지나가는 경로에 나타나는 순서대로 주어지고, 아내가 준 물건 목록이 주어질 때, 여러분의 프로그램은 그가 지불해야 하는 최소 비용을 구해야 합니다.
존스 씨는 목록에 적힌 순서대로 물건을 사며, 통로를 걷는 동안 절대 되돌아가지 않습니다. 따라서 경로에서 $i$번째 위치의 상품을 목록의 $j$번째 물건으로 산다면, 다음에 살 물건은 목록의 $(j+1)$번째 물건이고, 그 상품은 경로에서 위치 $i$보다 뒤에 오는 상품 중에서 사야 합니다. 같은 물건이라도 서로 다른 브랜드가 따로따로 나타날 수 있습니다.
아래 그림은 한 가지 예를 보여 줍니다. 존스 씨는 상품 1, 1, 2, 20을 사야 합니다(상품 1이 목록에 두 번 나오는 것에 유의하세요). 이 예에서 최소 비용은 21.30입니다. 이 새로운 장보기 방식으로는 목록의 모든 물건을 사는 것이 불가능할 수도 있습니다. 그런 경우에는 프로그램이 존스 씨에게 알려 주어야 합니다.

(a) 존스 부인의 목록

(b) 존스 씨가 통로를 지나가며 마주치는 순서대로 나열한 상품과 그 가격
입력은 여러 개의 장보기 세션으로 이루어집니다. 각 세션의 첫 줄에는 두 정수 $M$과 $N$이 주어집니다. $M$은 존스 부인의 목록에 있는 물건의 개수이고($1 \le M \le 100$), $N$은 슈퍼마켓에 있는 상품의 총 개수입니다($1 \le N \le 100{,}000$). 다음 줄에는 존스 부인의 목록에 있는 물건을 나타내는 $M$개의 정수 $X_i$가 주어집니다($1 \le X_i \le 100{,}000$, $1 \le i \le M$). 그다음 $N$개의 줄에는 존스 씨가 마주치는 순서대로 슈퍼마켓의 상품이 주어집니다. 각 줄에는 상품의 식별자를 나타내는 정수 $K$와 그 가격을 나타내는 실수 $P$가 주어집니다($1 \le K \le 100{,}000$). 입력의 끝은 $M = N = 0$인 줄로 표시됩니다.
각 장보기 세션마다 존스 씨가 지불해야 하는 최소 비용을 한 줄에 출력합니다. 해당 세션에서 모든 물건을 살 수 없다면 Impossible을 출력합니다. 비용은 소수점 아래 두 자리까지의 실수로 출력하며, 마지막 자리는 반올림합니다. 입력에는 반올림 방식에 따라 결과가 달라지는 경우가 포함되지 않습니다.