Problem description


Znowu NWW
(nww)
Limit pamięci: 128 MB
Limit czasu: 24.00 s

To już trzecie zadanie z NWW. Czyżby autorom zadań na sparingi kończyły się pomysły? Zadanie jest tym razem bardzo krótkie: chcemy obliczyć najmniejszą wspólną wielokrotność kolejnych liczb w przedziale [A;B]: czyli NWW(A,A+1,…,B). Niestety, jest wiele zapytań do rozpatrzenia.

Napisz program, który: wczyta zapytania, dla każdego z nich obliczy najmniejszą wspólną wielokrotność i wypisze wyniki na standardowe wyjście.

Wejście

W pierwszym (jedynym) wierszu wejścia znajduje się jedna liczba naturalna Q – liczba zapytań. W kolejnych Q wierszach znajdują się kolejne zapytania, każde z nich składa się z dwóch liczb Ai oraz Bi, oddzielonych pojedynczym odstępem – są to końce przedziału obustronnie domkniętego, którego dotyczy zapytanie.

Wyjście

Twój program powinien wypisać na wyjście dokładnie Q wierszy. W i-tym z nich powinna się znaleźć odpowiedź dla i-tego zapytania – reszta z dzielenia przez 109 + 7 liczby NWW(Ai,Ai+1,…,Bi−1,Bi).

Ograniczenia

1 ≤ Q ≤ 50 000, 1 ≤ Ai ≤ Bi ≤ 50 000.

Przykład

Wejście Wyjście
4
1 5
3 6
5 5
10 12
60
60
5
660