import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner in
=new Scanner
(System.
in);int n=a.length();
int m=b.length();
int k=0;
for(int i=n+1;i<=m-1;i++){
if(i>9){k+=(f(i-9)*(vse(i)-num_of_com1(10,i)))%1000000007;}
else k+=(vse(i)-num_of_com1(10,i))%1000000007;
}
int w=0;
for(int j=0;j<n-1;j++){
}
if(w==n-1) k++;
w=0;
}
for(int i
=Integer.
parseInt(b
);i
>=Math.
pow(10,m
-1);i
--){ int ww=0;
for(int j=0;j<m-1;j++){
if(Character.
getNumericValue(pp.
charAt(j
+1))>=Character.
getNumericValue(pp.
charAt(j
))) ww
++; }
if(ww==m-1) k++;
ww=0;
}
}
public static int num_of_com1(int n, int m)
{int akk1=1;
int akk2=1;
for(int i=0;i<m;i++){
akk1=akk1*(n-i);
akk2=akk2*(i+1);
}
return akk1 / akk2;}
public static int vse(int n){
int r=1;
for(int i=0;i<n-1;i++){
r*=10;
}
r*=9;
return r;
}
public static int f(int n){
if(n==1) return 1;
else return n+f(n-1);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJU2Nhbm5lciBpbj1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJU3RyaW5nIGE9aW4ubmV4dExpbmUoKTsKU3RyaW5nIGI9aW4ubmV4dExpbmUoKTsKaW50IG49YS5sZW5ndGgoKTsKaW50IG09Yi5sZW5ndGgoKTsKaW50IGs9MDsKCWZvcihpbnQgaT1uKzE7aTw9bS0xO2krKyl7CgkJaWYoaT45KXtrKz0oZihpLTkpKih2c2UoaSktbnVtX29mX2NvbTEoMTAsaSkpKSUxMDAwMDAwMDA3O30KZWxzZQlrKz0odnNlKGkpLW51bV9vZl9jb20xKDEwLGkpKSUxMDAwMDAwMDA3OwoJfQoKZm9yKGludCBpPUludGVnZXIucGFyc2VJbnQoYSk7aTxNYXRoLnBvdygxMCxuKS0xO2krKyl7CglTdHJpbmcgcD1JbnRlZ2VyLnRvU3RyaW5nKGkpOwoJaW50IHc9MDsKCWZvcihpbnQgaj0wO2o8bi0xO2orKyl7CmlmKENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUocC5jaGFyQXQoaisxKSk+PUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUocC5jaGFyQXQoaikpKSB3Kys7Cn0JCmlmKHc9PW4tMSkgaysrOwp3PTA7Cn0KZm9yKGludCBpPUludGVnZXIucGFyc2VJbnQoYik7aT49TWF0aC5wb3coMTAsbS0xKTtpLS0pewoJU3RyaW5nIHBwPUludGVnZXIudG9TdHJpbmcoaSk7CglpbnQgd3c9MDsKCWZvcihpbnQgaj0wO2o8bS0xO2orKyl7CmlmKENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUocHAuY2hhckF0KGorMSkpPj1DaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKHBwLmNoYXJBdChqKSkpIHd3Kys7Cn0JCmlmKHd3PT1tLTEpIGsrKzsKd3c9MDsKfQoKCQoJU3lzdGVtLm91dC5wcmludGxuKGsrMSk7CQoJfQoJCnB1YmxpYyBzdGF0aWMJaW50IG51bV9vZl9jb20xKGludCBuLCBpbnQgbSkKe2ludCBha2sxPTE7CmludCBha2syPTE7CiAgICBmb3IoaW50IGk9MDtpPG07aSsrKXsKICAgIAlha2sxPWFrazEqKG4taSk7CiAgICAJYWtrMj1ha2syKihpKzEpOwogICAgfQogICAgcmV0dXJuIGFrazEgLyBha2syO30KCXB1YmxpYyBzdGF0aWMgaW50IHZzZShpbnQgbil7CgkJaW50IHI9MTsKCQlmb3IoaW50IGk9MDtpPG4tMTtpKyspewoJCQlyKj0xMDsKCQl9CgkJcio9OTsKCQlyZXR1cm4gcjsKCX0KCXB1YmxpYyBzdGF0aWMgaW50IGYoaW50IG4pewoJCWlmKG49PTEpIHJldHVybiAxOwoJCWVsc2UgcmV0dXJuIG4rZihuLTEpOwoJfQp9