#include<iostream> #include<vector> #include<algorithm> using namespace std; long f(long N) { vector<int>d; long t=N; while(t) { d.push_back(t%10); t/=10; } reverse(d.begin(),d.end()); long dp[20][11][2][10][10]={}; dp[0][0][0][0][0]=1; long ans=0; for(int i=0;i<d.size();i++)for(int I=0;I<10;I++)for(int j=0;j<2;j++) { int lim=j?9:d[i]; for(int k=0;k<10;k++)for(int l=0;l<10;l++) { for(int x=0;x<=lim;x++) { int nI=I; if(l==1&&x==2)nI++; dp[i+1][nI][j||x<lim][k?k:x][x]+=dp[i][I][j][k][l]; } } } for(int i=0;i<11;i++) { for(int k=0;k<10;k++)for(int l=0;l<10;l++)ans+=i*dp[d.size()][i][0][k][l]+i*dp[d.size()][i][1][k][l]; ans+=dp[d.size()][i][0][2][1]+dp[d.size()][i][1][2][1]; } if(N%10==1) { long t=N; while(t>=10)t/=10; if(t==2)ans--; } if(N>=2)ans++; return ans; } main() { long A,B; cin>>A>>B; long ans=f(B)-f(A-1); if((A-1)%10==1) { long t=A; while(t>=10)t/=10; if(t==2)ans--; } cout<<ans<<endl; }