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
n = input()

def nextSuperLuckyNumber(n_str: str) -> str:
    n = len(n_str)
    half_len = n >> 1
    if n & 1 or n_str > f"{'7' * half_len}{'4' * half_len}":
        half_len += 1
        return f"{'4' * half_len}{'7' * half_len}"

    result = [0 for _ in range(n)]
    remaining = [half_len, half_len]

    for i in range(n):
        add_4 = False

        if remaining[0]:
            if n_str[i] < '4':
                add_4 = True
            elif n_str[i] == '4':

                last_idx = i + remaining[1]
                for j in range(i + 1, n):
                    d = '7' if j <= last_idx else '4'
                    if n_str[j] < d:
                        add_4 = True
                        break
                    elif n_str[j] > d:
                        add_4 = False
                        break
                    elif j == n - 1:
                        add_4 = True
        if add_4:
            result[i] = '4'
            remaining[0] -= 1
        else:
            result[i] = '7'
            remaining[1] -= 1
            
        if result[i] > n_str[i] or remaining[1] == 0:
            for k in range(i + 1, i + 1 + remaining[0]):
                result[k] = '4'
            for k in range(i + 1 + remaining[0], i + 1 + remaining[0] + remaining[1]):
                result[k] = '7'
            break

    return ''.join(result)

print(nextSuperLuckyNumber(n))