#include #include #include using namespace std; char str[20]; long long dp[20][10][10][2][3]; long long f(long long n){ if(n==0)return 0LL; sprintf(str,"%lld",n); int len=strlen(str); for(int i=0;i<20;i++)for(int j=0;j<10;j++)for(int k=0;k<10;k++)for(int l=0;l<2;l++)for(int m=0;m<3;m++) dp[i][j][k][l][m]=0; for(int i=1;i<10;i++){ int tmp=0; if(istr[0]-'0')tmp=2; dp[1][0][i][i==2][tmp]=1; } for(int i=1;istr[i]-'0')tm=2; dp[i+1][tj][r][l][tm]+=dp[i][j][k][l][m]; } } } } } long long ret=0; for(int i=1;i<=len;i++){ for(int j=0;j<10;j++){ for(int k=0;k<10;k++){ for(int l=0;l<2;l++)for(int m=0;m<3;m++){ if(i==len&&m==2)continue; ret+=dp[i][j][k][l][m]*j; if((m||i!=len)&&l&&k==1){ ret+=dp[i][j][k][l][m]; } } } } } return ret; } int main(){ long long A,B; scanf("%lld%lld",&A,&B); long long ret=f(B)-f(A-1); if((A-1)%10==1){ long long c=A; while(c>=10)c/=10; if(c==2)ret--; } printf("%lld\n",ret); }