#include <bits/stdc++.h>
using namespace std;
int s(long long n){
int sum=0;
while(n){
sum+=n%10;
n=n/10;
}
return sum;
}
long long qp(long long i,long long j)
{
long long res=1;
for(int k=1;k<=j;k++) res=i*res;
return res;
}
long long skip(long long n){
long long k=0;
long long a[12],id=0,b[12];
memset(a,0,sizeof a);
memset(b,0,sizeof b);
long long j=n;
while(j)
{
a[++id]=j%10;
j/=10;
}
int f=0;
for(int i=1;i<=id;i++)
{
if(a[i]+f>3) f=1,b[i]=0;
else b[i]=a[i]+f,f=0;
}
if(f) b[++id]=1;
for(int i=1;i<=id;i++)
k+=b[i]*qp(10,i-1);
return k;
}
int main(){
long long l,r;
cin>>l>>r;
int sum=0;
for(long long i=l;i<=r;++i){
i=skip(i);
if((s(i*i)==s(i)*s(i))&&i<=r) ++sum;
}
cout<<sum;
return 0;
}