L, R = map(int, input().split())
ans = 0
if len(str(L)) != len(str(R)):
print(0)
else:
L_str = str(L)
R_str = str(R)
if L_str[0] != R_str[0]:
print(0)
else:
if L_str[0] == '8':
ans+=1
for i in range(1, len(L_str)):
if L_str[i] != R_str[i]:
break
else:
if L_str[i] == '8':
ans+=1
print(ans)
# 800 899
# 8808 8880
처음엔 역시 또 멍했다.. 어떻게해야하나..
우선 생각할 수 있는것부터 하나하나 생각해보기로 했다.
가장 쉽게 생각할 수 있는 자릿수가 다른 경우는 어떤지에 대해서 생각하는걸로 첫단추를 꿰니 이후부턴 제법 머리가 돌아가기 시작했다.
우선 자릿수가 다른 경우는 무조건 8 이 들어가는 최소횟수는 0이다. 직접 대입해보면 쉽게 알 수 있다.
그 다음, 첫째 자리의 숫자가 다른 경우 역시 8이 들어가는 최소횟수는 0이다.
그 다음 부터 각 자리의 숫자가 다른 경우는 이전까지 누적된 8의 횟수가 최소횟수이므로 더이상 비교할 필요가 없다.
예를 들어
L = 80008, R = 88888
인 경우,
[8]0008, [8]8888 첫자리가 같으므로 무조건 8이 한번은 나온다. ans = 1
8[0]008, 8[8]888 둘째자리가 틀리므로 뒷자리는 볼 필요도 없다. 정답은 1
문제를 보고 멍할때 우선 생각할 수 있는 가장 간단한 케이스가 뭐가 있는지.. 시작하는걸로 첫단추를 끼우자. 그럼 그 다음 단추는 비교적 쉽게 떠오른다.