from math import log10
# from collections import deque

def isPrime(num):
    if (num == 0 or num == 1): return False
    if (num == 2 or num == 3): return True
    if (num % 2 == 0): return False
    i = 3
    while (i*i <= num+3):
        if (num % i == 0): return False
        i+=2
    return True

# print(isPrime(100717))
dp = dict()
def getAll(num):
    if (dp.get(num, None) is not None): return dp[num]
    if (not isPrime(num)): return 0
    if (num < 10): return 1
    # print("Got num ", num)
    length = int(log10(num))+1
    maxVal = getAll(int(num / 10))
    # print("After")

    for i in range(1, length, 1):
        deg = int(pow(10, i+1))
        newNum = int(num // deg) * int(deg//10) + (num % (deg//10))
        # print(f"for {num} got {newNum}")
        maxVal = max(maxVal, getAll(newNum))
    
    dp[num] = maxVal + 1
    return maxVal + 1



print(getAll(int(input())))