플레이어 N명이 M개의 팀으로 나누어 게임을 진행하려 한다. 각 팀의 인원수는 t_1, t_2, ⋯, t_M이며, i번째 플레이어는 리더 점수 L_i와 플레이어 점수 P_i를 가진다. 각 플레이어는 정확히 한 팀에 속해야 한다.
각 팀의 리더는 팀에 속한 플레이어 중 리더 점수가 제일 큰 사람이다. 만약 한 팀에 리더 점수가 가장 큰 플레이어가 여러 명이라면, 한 플레이어만 리더가 된다. 이때 팀의 능력은 리더의 플레이어 점수로 정의된다.
플레이어를 각 팀에 적절히 분배하여 모든 팀의 능력의 합을 최대한 크게 해 보자!
첫째 줄에 N, M이 주어진다. (1≤M≤N ≤3⋅105)
이어지는 줄부터 N개의 줄에 걸쳐 두 정수 L_i와 P_i가 주어진다. (1≤L_i,P_i≤105)
마지막 줄에는 M개의 정수가 주어진다. i번째 수는 t_i이다. (1≤t_i≤N, ∑_i=1Mt_i=N)
팀을 적절히 분배하였을 때 각 팀의 능력의 합의 최댓값을 출력하라.