Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal representation contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

One day Petya dreamt of a lexicographically k-th permutation of integers from 1 to n. Determine how many lucky numbers in the permutation are located on the positions whose indexes are also lucky numbers.

Input

The first line contains two integers n and k (1 ≤ n, k ≤ 109) — the number of elements in the permutation and the lexicographical number of the permutation.

Output

If the k-th permutation of numbers from 1 to n does not exist, print the single number "-1" (without the quotes). Otherwise, print the answer to the problem: the number of such indexes i, that i and ai are both lucky numbers.

Examples

Input

7 4


Output

1


Input

4 7


Output

1

Note

A permutation is an ordered set of n elements, where each integer from 1 to n occurs exactly once. The element of permutation in position with index i is denoted as ai (1 ≤ i ≤ n). Permutation a is lexicographically smaller that permutation b if there is such a i (1 ≤ i ≤ n), that ai < bi, and for any j (1 ≤ j < i) aj = bj. Let's make a list of all possible permutations of n elements and sort it in the order of lexicographical increasing. Then the lexicographically k-th permutation is the k-th element of this list of permutations.

In the first sample the permutation looks like that:

1 2 3 4 6 7 5

The only suitable position is 4.

In the second sample the permutation looks like that:

2 1 3 4

The only suitable position is 4.
debug = False

import sys, math



def out():
    FIN.close()
    FOUT.close()
    sys.exit()

def num(ind):
    i = 0
    k = ind
    while k > 0:
        i += 1
        if not f[i]:
            k -= 1
    return i

def nextlucky(x):
    s = str(x)
    lens = len(s)
    for i in range(lens - 1, -1, -1):
        if s[i] == '4':
            res = s[:i] + '7' + '4' * (lens - i - 1)
            return int(res)
    return int('4' * (lens + 1))


if debug:
    FIN = open('input.txt', 'r')
    FOUT = open('output.txt', 'w')
else:
    FIN = sys.stdin
    FOUT = sys.stdout

n, k = map(int, FIN.readline().split())

fact = [0] * 14
fact[0] = 1
for i in range(1, 14):
    fact[i] = fact[i - 1] * i
if n < 14 and fact[n] < k:
    FOUT.write('-1')
    out()
a = [0] * 14
p = [0] * 14
f = [False] * 14
for i in range(1, 14):
    a[i] = n - 13 + i
ind = 0
for i in range(1, 14):
    j = 1
    while ind < k:
        j += 1
        ind += fact[13 - i]
    ind -= fact[13 - i]
    j -= 1
    p[i] = num(j)
    f[p[i]] = True

lucky = [0] * 2000
lucky[0] = 4
count = 0
while lucky[count] <= n:
    count += 1
    lucky[count] = nextlucky(lucky[count - 1])

ans = 0
ind = count
for i in range(count):
    if lucky[i] < n - 12:
        ans += 1
    else:
      #  ind = i
        break
for i in range(1, 14):
    if (i + n - 13) > 0 and (a[p[i]] > 0):
        if ((i + n - 13) in lucky) and ((a[p[i]]) in lucky):
            ans += 1
    
FOUT.write(str(ans))        
out()

