용수철

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

새로 산 용수철 여러 개가 있다. 각 용수철은 특정한 길이로 만들어져 있으며, 늘이거나 줄이려면 힘이 든다.

아직 한 번도 건드리지 않은 용수철의 길이를 11 센티미터 늘이거나 줄이는 데에는 힘 11이 필요하다. 같은 용수철을 그 다음부터 11 센티미터씩 더 바꿀 때마다 필요한 힘은 11씩 커진다. 즉, 한 용수철의 길이를 모두 합쳐 dd 센티미터만큼 바꾸려면 1+2++d=d(d+1)21 + 2 + \dots + d = \frac{d(d+1)}{2} 만큼의 힘이 든다.

가장 짧은 용수철 kk개를 모두 같은 길이로 만들 때 필요한 힘의 최솟값이 궁금하다. 모든 용수철은 처음에 한 번도 늘이거나 줄인 적이 없으며, 맞추려는 공통 길이는 임의의 정수로 자유롭게 정할 수 있다.

입력

첫째 줄에 용수철의 개수 nn과 질문의 개수 mm이 주어진다 (1n,m1061 \le n, m \le 10^6).

둘째 줄에 용수철들의 길이 s1,s2,,sns_1, s_2, \dots, s_n이 오름차순으로 주어진다 (1sisi+11091 \le s_i \le s_{i+1} \le 10^9).

셋째 줄에 mm개의 질문 k1,k2,,kmk_1, k_2, \dots, k_m이 주어진다 (1kjn1 \le k_j \le n). 각 질문 kjk_j는 가장 짧은 용수철 kjk_j개에 대한 것이다.

출력

각 질문 jj에 대해, 가장 짧은 용수철 kjk_j개를 모두 같은 길이로 만드는 데 드는 힘의 최솟값을 109+710^9 + 7으로 나눈 나머지를 한 줄에 하나씩 출력한다.