C. Dreamoon и суммы
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Dreamoon любит складывать различные числа. Как-то раз у него оказалось два целых числа, a и b. Он хочет посчитать сумму всех милых целых чисел. Положительное число x милое, если , а , где k — это некоторое целое число на отрезке [1, a].

обозначает неполное частное от деления x на y. обозначает остаток от деления x на y. Подробнее об этих операциях можно прочитать здесь: http://goo.gl/1Y9L1E.

Ответ может получиться большим, так что выведите его остаток от деления на 1 000 000 007 (109 + 7). Сможете ли вы вычислить результат быстрее, чем Dreamoon?

Входные данные

В единственной строке записано два целых числа a, b (1 ≤ a, b ≤ 107).

Выходные данные

Выведите единственное целое число — ответ по модулю 1 000 000 007 (109 + 7).

Примеры
Входные данные
1 1
Выходные данные
0
Входные данные
2 2
Выходные данные
8
Примечание

В первом примере нет милых чисел, так как всегда равняется нулю.

Во втором примере милые числа это: {3, 5}.