Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal representations contain only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Unfortunately, not all numbers are lucky. Petya calls a number nearly lucky if the number of lucky digits in it is a lucky number. He wonders whether number n is a nearly lucky number.

Input

The only line contains an integer n (1 ≤ n ≤ 1018).

Please do not use the %lld specificator to read or write 64-bit numbers in С++. It is preferred to use the cin, cout streams or the %I64d specificator.

Output

Print on the single line "YES" if n is a nearly lucky number. Otherwise, print "NO" (without the quotes).

Examples

Input

40047


Output

NO


Input

7747774


Output

YES


Input

1000000000000000000


Output

NO

Note

In the first sample there are 3 lucky digits (first one and last two), so the answer is "NO".

In the second sample there are 7 lucky digits, 7 is lucky number, so the answer is "YES".

In the third sample there are no lucky digits, so the answer is "NO".
def is_lucky(a):
    
    """
     Check if a given number (a) is lucky.
     @input: an integer a (1<=a<=10^18)
     @output: True - if a is lucky
              False - if a is not lucky
    """
    if a==0:
        ok=False
    else:
        ok=True
       # We assume that a is lucky
    
    while (a>0 and ok==True):
        if (int(a%10) == 4 or int(a%10) == 7):
            a=a//10
        else:
            ok=False
    return ok
def nearly_lucky(n):

    """
     Check if a given number (n) is nearly lucky.
     @input: an integer n (1<=n<=10^18)
     @output: True - if n is nearly lucky
              False - if n is not nearly lucky
    """

    ok=False
    nr=0
    while n>0:
        if is_lucky(n%10)==True:
            nr+=1
        n=n//10
    if is_lucky(nr)==True:
        ok=True
    return(ok)

def citire():

    """
     Read an integer.
     @output: an integer n (1<=n<=10^18)
    """

    return int(input())

n=citire() #read n
if (nearly_lucky(n)==True):
    print("YES")
else:
    print("NO")
