On the math lesson a teacher asked each pupil to come up with his own lucky numbers. As a fan of number theory Peter chose prime numbers. Bob was more original. He said that number *t* is his lucky number, if it can be represented as: 

Now, the boys decided to find out how many days of the interval [*l*, *r*] (*l* ≤ *r*) are suitable for pair programming. They decided that the day *i* (*l* ≤ *i* ≤ *r*) is suitable for pair programming if and only if the number *i* is lucky for Peter and lucky for Bob at the same time. Help the boys to find the number of such days.
The first line of the input contains integer numbers *l*, *r* (1 ≤ *l*, *r* ≤ 3·10<sup class="upper-index">8</sup>).
l, r = [int(x) for x in input().split()]

L = (r + 31) // 32
lucky = [0 for i in range(L)]
composite = [0 for i in range(L)]

i = 2
while i * i <= r:
    if ((composite[i // 32] >> (i % 32)) & 1) == 0:
        for j in range(i * i, r + 1, i):
            composite[j // 32] |= 1 << (j % 32)
    i += 1

for i in range(1, int((r / 2.0) ** 0.5) + 1):
    j = i
    while i * i + j * j <= r:
        lucky[(i * i + j * j) // 32] |= 1 << ((i * i + j * j) % 32)
        j += 1
print(sum([1 if (lucky[i // 32] & (1 << (i % 32))) > 0 and (composite[i // 32] & (1 << (i % 32))) == 0 else 0 for i in range(l, r + 1)]))
