Helipuerto
Se desea construir un helipuerto en la azotea de un edificio para que puedan aterrizar helicópteros.
El helipuerto debe cumplir con todas las siguientes condiciones:
- El helipuerto está compuesto por $k$ ($k \ge 1$) círculos concéntricos.
- Los radios de los círculos que componen el helipuerto son $1, 2, \dots, k$ (números naturales distintos entre $1$ y $k$, inclusive).
- La circunferencia de cada círculo debe pintarse con un único color de pintura.
El tamaño del helipuerto es el radio del mayor de los círculos concéntricos, lo cual, según las condiciones anteriores, es igual a la cantidad $k$ de círculos concéntricos.
Dos helipuertos se consideran distintos si sus tamaños son diferentes o, teniendo el mismo tamaño, la combinación de colores pintados en los círculos concéntricos es diferente.
Para pintar la circunferencia de un círculo de radio $r$, se necesitan exactamente $r$ botes de pintura.
Por ejemplo, cuando se tienen 3 botes de pintura roja y 4 botes de pintura azul, hay 9 helipuertos distintos que se pueden construir usando estas pinturas, tal como se muestra en la siguiente figura. La marca X indica el centro de los círculos concéntricos.
Como referencia, para dibujar un helipuerto de tamaño 3 como el que se muestra en la siguiente figura, se necesitarían $4 = 1 + 3$ botes de pintura roja y 2 botes de pintura azul; sin embargo, como solo se dispone de 3 botes de pintura roja, no es suficiente y dicho helipuerto no se puede construir.
Actualmente tienes $a$ botes de pintura roja y $b$ botes de pintura azul. Escribe un programa que calcule la cantidad de helipuertos distintos que se pueden construir usando únicamente estas pinturas, módulo $10^9 + 7$.
Debes resolver $T$ casos de prueba en una sola entrada.
Restricciones
- Todos los números dados son enteros.
- $1 \le T \le 10\ 000$
- $1 \le a, b \le 50\ 000$
Subtareas
- (3 puntos) $T = 1$. $a, b \le 6$.
- (17 puntos) $T = 1$. $a, b \le 100$.
- (21 puntos) $T = 1$. $a, b \le 1\ 000$.
- (23 puntos) $T = 1$. $a, b \le 5\ 000$.
- (26 puntos) $T = 1$.
- (10 puntos) Sin restricciones adicionales.
Entrada
La primera línea contiene la cantidad de casos de prueba $T$.
Las siguientes $T$ líneas contienen los casos de prueba, uno por línea. Cada línea contiene dos enteros $a$ y $b$, separados por un espacio.
Salida
Para cada caso de prueba, imprime en una línea independiente la cantidad de helipuertos distintos que se pueden construir usando únicamente $a$ botes de pintura roja y $b$ botes de pintura azul, módulo $10^9 + 7$.
Ejemplos
Entrada 1
3 3 4 10 5 7 12
Salida 1
9 25 40