N_str = input().strip()
L = len(N_str)
k_max = L // 3
answer = 0

for k in range(1, k_max + 1):
    if 3 * k < L:
        count = 9 * (10 ** (k - 1))
        answer += count
    else:
        min_m = 10 ** (k - 1)
        max_m = 10 ** k - 1
        if min_m > max_m:
            continue
        low = min_m
        high = max_m
        best = 0
        while low <= high:
            mid = (low + high) // 2
            mid_str = str(mid)
            candidate = mid_str * 3
            if candidate <= N_str:
                best = mid
                low = mid + 1
            else:
                high = mid - 1
        if best >= min_m:
            answer += best - min_m + 1

print(answer)