569_C. Primes or Palindromes?_9690
Rikhail Mubinchik believes that the current definition of prime numbers is obsolete as they are too complex and unpredictable. A palindromic number is another matter. It is aesthetically pleasing, and it has a number of remarkable properties. Help Rikhail to convince the scientific community in this!

Let us remind you that a number is called prime if it is integer larger than one, and is not divisible by any positive integer other than itself and one.

Rikhail calls a number a palindromic if it is integer, positive, and its decimal representation without leading zeros is a palindrome, i.e. reads the same from left to right and right to left.

One problem with prime numbers is that there are too many of them. Let's introduce the following notation: π(n) — the number of primes no larger than n, rub(n) — the number of palindromic numbers no larger than n. Rikhail wants to prove that there are a lot more primes than palindromic ones.

He asked you to solve the following problem: for a given value of the coefficient A find the maximum n, such that π(n) ≤ A·rub(n).

Input

The input consists of two positive integers p, q, the numerator and denominator of the fraction that is the value of A (<image>, <image>).

Output

If such maximum number exists, then print it. Otherwise, print "Palindromic tree is better than splay tree" (without the quotes).

Examples

Input

1 1


Output

40


Input

1 42


Output

1


Input

6 4


Output

172
import sys
import math

p, q = map(int, sys.stdin.readline().split())

def is_palindrome(x):
    s = str(x)
    for i in xrange(len(s)/2):
        if s[i] != s[len(s)-1-i]:
            return False
    return True
    
def get_primes2(x):
    x, correction = x-x%6+6, 2-(x%6>1)
    sieve = [True] * (x/3)
    for i in xrange(1,int(x**0.5)/3+1):
      if sieve[i]:
        k=3*i+1|1
        sieve[      k*k/3      ::2*k] = [False] * ((x/6-k*k/6-1)/k+1)
        sieve[k*(k-2*(i&1)+4)/3::2*k] = [False] * ((x/6-k*(k-2*(i&1)+4)/6-1)/k+1)
    arr = [2,3] + [3*i+1|1 for i in xrange(1,x/3-correction) if sieve[i]] + [x]
    res = [0]*x
    ind = 0
    for i in xrange(1, x):
        if arr[ind] <= i+1:
            res[i] = res[i-1] + 1
            ind += 1
        else:
            res[i] = res[i-1]
    return res

n = 2
rub = [1]
while(1):
    if is_palindrome(n):
        rub.append(rub[-1]+1)
    else:
        rub.append(rub[-1])
    if n >= 17 and p*rub[-1] < q * n / math.log(n):
        break
    if n >= 5393 and p*rub[-1] < q * n / (math.log(n) - 1):
        break
    n += 1

pi = get_primes2(n)

while(q*pi[n-1] > p*rub[n-1]):
    n -= 1

print >> sys.stdout, n
6 4
 1 1
 1 42
 238 9996
 9999 9999
 620 35
 9999 9998
 6811 5416
 10000 9999
 42 1
 10000 10000
 241 10000
 5858 674
 1000 10000
 1307 3420
 4 9
 10000 239
 5 8
 16 60
 999 10000
 7 11
 940 480
 214 210
 3 1
 7 267
 239 10000
 106 6
 238 9655
 9999 6698
 987 35
 9854 9998
 11275 5416
 10000 1538
 5858 495
 1854 3420
 7 9
 5 5
 29 60
 12 11
 955 480
 214 248
 3 2
 106 10
 9999 5278
 987 39
 11275 615
 10100 1538
 5858 304
 7 10
 5 2
 1738 480
 145 10
 6343 5278
 11275 351
 11000 1538
 8689 304
 35 4
 48 10000
 999 11000
 7 388
 239 11000
 1 2
 1 45
 238 5291
 10351 9998
 48 10010
 1854 4320
 35 60
 1526 11000
 12 16
 80 248
 8 388
 379 11000
 2 45
 238 2119
 10351 10081
 9 10010
 3498 4320
 9 10
 1 3
 2413 11000
 12 29

172
 40
 1
 1
 40
 251262
 40
 66
 40
 1179858
 40
 1
 71118
 1
 1
 10
 1168638
 16
 1
 1
 16
 1372
 40
 2530
 1
 1
 250300
 1 162 514872 36 1486 11620 146358 12 22 40 10 46 1408 28 172 127296 1296 429508 263862 11940 283026 18 1912 3448 190908 66 652836 15580 526776 100332 1 1 1 1 12 1 1 40 1 1 12 1 22 1 1 1 1 1 40 1 22 28 1 1 1