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)