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.
def lucky(x):
  while x>0:
    d=x%10
    x/=10
    if d!=4 and d!=7:
      return False
  return True
n,k=map(int,raw_input().split())
k-=1
p=[1]*16
for i in xrange(13):p[i+1]=p[i]*(i+1)
a=[]
def n_th(x):
  if n-x<13:
    return a[x-1-n]+max(0,n-13)+1
  else:
    return x
if n<=13 and k>=p[n]:print -1
else:
  s=[1]*16
  for b in reversed(xrange(min(13,n))):
    u=0
    while k>=p[b]:
      k-=p[b]
      while not s[u]:u+=1
      u+=1
    while not s[u]:u+=1
    a.append(u)
    s[u]=0
  t=0
  for w in xrange(1,10):
    for x in xrange(1<<w):
      y=0
      for b in xrange(w):
        y=y*10+(7 if ((1<<b)&x) else 4)
      if y<=n and lucky(n_th(y)):t+=1
  print t
