단조 증가 수

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Albert는 "단조 증가 수" (monotone increasing number)를 이용한 놀이를 즐겨한다. 음이 아닌 임의의 정수 xx에 대해 xx의 각 자리 숫자들을 좌측 (가장 큰 자릿수) 부터 우측 (가장 작은 1의 자릿수)까지 순서대로 읽었을 때 한 번도 감소하지 않으면 xx를 단조 증가 수라 부른다. 예를 들어 0, 5, 111, 234, 2246 등은 단조 증가 수이며 121, 465 등은 단조 증가 수가 아니다.

Albert가 평소 즐겨하는 놀이는 임의의 정수 xx가 주어졌을 때, xx를 초과하지 않으면서 가장 큰 단조 증가 수를 찾는 놀이이다 -- 편의상 그러한 정수를 S(x)S(x)라 하자. 이 정의에 따르면 xx가 단조 증가 수라면 당연히 S(x)=xS(x) = x이며 S(5)=5S(5) = 5S(111)=111S(111) = 111 등이 이러한 경우에 해당한다. 반면, xx가 단조 증가 수가 아닌 경우는 당연히 S(x)<xS(x) \lt x이며, S(121)=119S(121) = 119S(465)=459S(465) = 459 등이 이러한 경우에 해당한다.

Albert의 놀이를 지켜보던 그의 누나는 조금 더 재미있는 놀이를 제안했다. 0 이상인 두 정수 NMN \le M이 주어졌을 때, F(N,M)=_x=NMS(x)F(N, M) = \sum\_{x=N}^{M} S(x) 를 구하는 놀이이다. 즉, NN이상 MM이하인 모든 정수에 xx 대해 S(x)S(x)를 구하여 더한 값이 F(N,M)F(N, M)이 된다. Albert와 그의 누나를 도와 이 값을 구해보자.

입력

입력 첫 줄에 테스트 케이스의 수 TT 가 주어진다.

다음 TT줄에 걸쳐 각 줄에 N,MN, M이 공백으로 구분되어 주어진다.

출력

각 줄에 각 테스트 케이스의 정답인 F(N,M)F(N, M)을 출력한다. 단, 이 값이 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

제한

  • 1T10001 \le T \le 1000
  • 0NM10180 \le N \le M \le 10^{18}