D. Красно-зеленые башни
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Имеется r красных и g зеленых кубиков для строительства красно-зеленой башни. Красно-зеленую башню можно построить по следующим правилам:

  • Красно-зеленая башня должна состоять из некоторого количества уровней;

  • Пусть красно-зеленая башня состоит из n уровней, тогда первый уровень этой башни должен состоять из n кубиков, второй уровень — из n - 1 кубиков, третий — из n - 2 кубиков, и так далее — последний уровень такой башни должен состоять из одного кубика. Другими словами, каждый последующий уровень должен содержать на один кубик меньше, чем предыдущий;

  • Каждый уровень красно-зеленой башни может состоять только из кубиков одного цвета.

Пусть h — наибольшее возможное количество уровней у красно-зеленой башни, построенной по описанным выше правилам из r красных и g зеленых кубиков. Требуется определить сколько различных красно-зеленых башен, состоящих из h уровней, можно построить из имеющихся кубиков.

Две красно-зеленых башни считаются различными, если существует уровень, который в первой башне состоит из кубиков красного цвета, а во второй — из кубиков зеленого цвета.

Ваша задача — написать программу, которая по заданным значениям r и g найдет искомое количество различных красно-зеленых башен высоты h по модулю 109 + 7.

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

В единственной строке содержатся два целых числа r и g, разделенных одним пробелом, — количество имеющихся красных и зеленых кубиков соответственно (0 ≤ r, g ≤ 2·105, r + g ≥ 1).

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

Выведите единственное целое число — искомое количество различных красно-зеленых башен высоты h по модулю 109 + 7.

Примеры
Входные данные
4 6
Выходные данные
2
Входные данные
9 7
Выходные данные
6
Входные данные
1 1
Выходные данные
2
Примечание

На приведенном в условии изображении показаны все возможные красно-зеленые башни для первого примера из условия.