import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
static long[][] dp=new long[20][20];
static int[] a=new int[20];
static long dfs(int pos,int pre,boolean status,boolean limit){
if(pos<0){
return 1;
}
if(status && !limit &&dp[pos][pre]!=-1){
return dp[pos][pre];
}
int up=limit?a[pos]:9;
long ans=0;
if(status){
for(int i=0;i<=up;i++){
if(Math.abs(i-pre)<2){
continue;
}
ans+=dfs(pos-1,i,true,limit&&(i==up));
}
}else{
for(int i=0;i<=up;i++){
ans+=dfs(pos-1,i,i!=0,limit&&(i==up));
}
}
if(status && !limit){
dp[pos][pre]=ans;
}
return ans;
}
static long solve(long x){
int len=0;
while(x>0){
a[len++]=(int)(x%10);
x/=10;
}
for(int i=0;i<20;i++){
for(int j=0;j<20;j++){
dp[i][j]=-1;
}
}
return dfs(len-1,0,false,true);
}
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
long l=cin.nextLong();
long r=cin.nextLong();
long ans=solve(r)-solve(l-1);
System.out.println(ans);
}
}