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".
lucky_num = 0

##check if even
#[int(i) for i in str(12345)
#def check_lucky_boi(num):
    
    #for x in num:
        #if x == "4" or x == "7":
            #continue
        #else:
            #return False
    
    #return True
        
    
def nearlylucky(num):
    count = 0   

    for i in num:
        if i == "4" or i == "7":
            count += 1

    
    if count == 4 or count == 7:
        return True
    else:
        return False


lucky_num = input()

#answer = check_lucky_boi(lucky_num)

#if answer == False:
answer = nearlylucky(lucky_num)

if answer == True:
    print("YES")
else:
    print("NO")
  	   			 	      	 		  	  		 		