새로 산 용수철 여러 개가 있다. 각 용수철은 특정한 길이로 만들어져 있으며, 늘이거나 줄이려면 힘이 든다.
아직 한 번도 건드리지 않은 용수철의 길이를 1 센티미터 늘이거나 줄이는 데에는 힘 1이 필요하다. 같은 용수철을 그 다음부터 1 센티미터씩 더 바꿀 때마다 필요한 힘은 1씩 커진다. 즉, 한 용수철의 길이를 모두 합쳐 d 센티미터만큼 바꾸려면 1+2+⋯+d=2d(d+1) 만큼의 힘이 든다.
가장 짧은 용수철 k개를 모두 같은 길이로 만들 때 필요한 힘의 최솟값이 궁금하다. 모든 용수철은 처음에 한 번도 늘이거나 줄인 적이 없으며, 맞추려는 공통 길이는 임의의 정수로 자유롭게 정할 수 있다.
첫째 줄에 용수철의 개수 n과 질문의 개수 m이 주어진다 (1≤n,m≤106).
둘째 줄에 용수철들의 길이 s1,s2,…,sn이 오름차순으로 주어진다 (1≤si≤si+1≤109).
셋째 줄에 m개의 질문 k1,k2,…,km이 주어진다 (1≤kj≤n). 각 질문 kj는 가장 짧은 용수철 kj개에 대한 것이다.
각 질문 j에 대해, 가장 짧은 용수철 kj개를 모두 같은 길이로 만드는 데 드는 힘의 최솟값을 109+7으로 나눈 나머지를 한 줄에 하나씩 출력한다.