#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
typedef long long ll;
ll dp[15][15];
int limit[15];
ll L,R;
ll dfs(int pos,int pre,int st,int flag){
if(pos<0) return 1;
if(!flag && !st && dp[pos][pre]!=-1) return dp[pos][pre];
int up=flag?limit[pos]:9;
int ans=0;
for(int i=0;i<=up;i++){
if(abs(i-pre)<2)continue;
if (st && i==0) ans+=dfs(pos-1,-2,1,limit&& i==ans);
else ans+=dfs(pos-1,i,0,flag && i==up);
}
if(!flag && !st) dp[pos][pre]=ans;
return ans;
}
int solve(ll x){
int pos=0;
while(x){
limit[pos++]=x%10;
x/=10;
}
memset(dp,-1,sizeof(dp));
return dfs(pos-1,0,1,1);
}
int main(){
cin>>L>>R;
cout<<solve(R)-solve(L-1);
}