code:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7,maxn=1.003e6;
int t,l,r,a[maxn],f[222][222];
int num;
int dfs(int x,int sum,bool top){
if(!x)return sum;
if(!top&&f[x][sum]>=0)return f[x][sum];
int bound=top?a[x]:9;
int ret=0;
for(int i=0;i<=bound;i++){
ret+=(ret+dfs(x-1,sum+i,top&&i==bound))%mod;
}
if(!top)f[x][sum]=ret;
return ret;
}
int solve(int x){
int ss=0;
while(x){
a[++ss]=x%10;
x/=10;
}
return dfs(ss,0,1)%mod;
}
signed main(){
cin>>t;
memset(f,-1,sizeof(f));
while(t--){
cin>>l>>r;
cout<<(solve(r)-solve(l-1)+mod)%mod<<'\n';
}
}