global subresults

def eratostene(n):
    nums = [True] * n
    for i in range(2, n):
        if nums[i]:
            for o in range(i+1, n):
                if o % i == 0:
                    nums[o] = False
    return nums


def AloneRec(n, primes):
    if (n == 3) or (n == 2):
        return 1

    options = 0
    for i in range(n - 1, n-15, -1):
        if i > 0 and primes[i]:
            if subresults[i] == 0:
                options += AloneRec(i, primes)
            else:
                options += subresults[i]
            pass
    #print(n, options)
    subresults[n] = options
    return options


n = int(input())
subresults = [0]*(n+1)
arr = eratostene(n+1)
arr[0] = False
arr[1] = False
print(AloneRec(n, arr))
