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.
The first line contains two integers *n* and *k* (1 ≤ *n*, *k* ≤ 10<sup class="upper-index">9</sup>) — the number of elements in the permutation and the lexicographical number of the permutation.
7 4
1
4 7
1
7 1
2
7 5040
1
10 1023
0
7 7477
-1
10 10000
1
3 7
-1
27 1
2
40 8544
2
47 1
4
47 8547744
3
50 1000000000
4
64 87
4
98 854555
6
100 1
6
9985 5888454
30
1 1
0
1 2
-1
2 1000000000
-1
10 1000000000
-1
20 1000000000
2
777777 1
126
777777 2
125
777474 10000
120
1000000000 1
1022
777777777 5
1021
777777777 1
1022
777477774 1
989
444747744 1000000000
554
475 88555458
8
12 855448
1
20 1000000000
2
47 99998544
2
49 1000000000
2
854459 95554455
126
77777779 1000000000
508
77 47
5
6999 85488877
22
7479 58884598
24
1000000000 1000000000
1022
7 1000
0
7 124
1
7 2048
1
7 3001
1
7 127
1
7 980
1
7 5000
0
7 4095
2
7 3856
0
7 5032
0
7 4999
0
2 3
-1
2 4
-1
7 985
1
4 25
-1
6 121
1
11 39916801
-1
29 1000000000
2
10 4589
1
10 100000
1
10 98564
1
10 1
2
10 100000009
-1
from math import factorial as fac

###


def islucky(num):
    for i in str(num):
        if (i != "4" and i != "7"):
            return 0
    return 1

def genlucky(s, n, arr):
    if(len(s) == n+1):
        return
    if(len(s)!=0):
        arr.append(int(s))
    genlucky(s+'4', n, arr)
    genlucky(s+'7', n, arr)

def lucks(n):
    arr = []
    genlucky("", n, arr)
    return sorted([*set(arr)])


luckis = lucks(11)


####

def rec(k, l, free, arr):
    if( l==0): return arr
    ind = k//fac(l-1)
    k -= ind*fac(l-1)
    #print(free, ind)
    arr.append(free[ind])
    free.pop(ind)
    rec(k, l-1, free, arr)
    
def clever(k, l, n):
    whatadd = n-l-1
    free = [i+whatadd for i in range(1, l+1)]
    arr = []
    rec(k, l, free, arr)
    return arr
###


n, k = map(int, input().split())


if(n <= 15 and fac(n) <= k):
    print(-1)
l = 0
while(fac(l) < k):
    l+=1
#print(l)
ans = 0
pseudo = clever(k, l+1, n)
for i in range(l):
    if(islucky(i + n - l) and islucky(pseudo[i])):
        ans+=1
#print(ans)
for i in luckis:
    if(i >= n):
        break
    ans += 1

print(ans)