Хамид написал $$$3014$$$ строк кода для задачи a+b и отдал из них $$$10$$$ строк Хамеду; после этого Хамед придумал следующую задачу.
Даны два целых числа $$$n$$$ и $$$m$$$.
Массив $$$a_1,a_2,\ldots,a_n$$$ называется высоким, если и только если выполняются все следующие условия:
Определим $$$f(a)$$$ как в следующем псевдокоде:
function f(array a):
pos := 1
res := 0
определим nxt[x] как массив, где nxt[x] является наименьшим индексом y таким, что
y > x и a[y] > a[x],
и не определено, если такого y нет
while pos < n:
if a[pos] < a[n]:
res += a[nxt[pos]] - a[pos]
pos := nxt[pos]
else:
pos += 1
return res
Найдите сумму $$$f(a)$$$ по всем высоким массивам $$$a_1,a_2,\ldots,a_n$$$, по модулю $$$10^9+7$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$, $$$0 \leq m \leq 2 \cdot 10^5$$$) — длина высокого массива и сумма всех элементов в высоком массиве.
Гарантируется, что сумма значений $$$m$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — сумму $$$f(a)$$$ по всем высоким массивам $$$a_1,a_2,\ldots,a_n$$$, по модулю $$$10^9+7$$$.
82 53 44 65 106 23100 100142857 33333200000 0
9 14 76 985 142112 771227753 865580631 0
В первом наборе входных данных есть три высоких массива:
Таким образом, ответ равен $$$5+3+1=9$$$.
Во втором наборе входных данных есть шесть высоких массивов:
Таким образом, ответ равен $$$4+3+2+1+2+2=14$$$.
В пятом наборе входных данных возможен такой высокий массив:
| Название |
|---|


