import sys from bisect import bisect def solve(): n = int(input()) n //= 10**9 + 1 ans = 0 palis = [] for k in range(1, 10): make_palindrome2(0, k, 0, palis) ans = bisect(palis, n) - 1 print(ans) def make_palindrome2(i, n, pal, palis): if 2*i == n: palis.append(pal) return elif 2*i == n - 1: for d in range(10): palis.append(pal + d * 10**i) return elif i == 0: for d in range(1, 10): make_palindrome2(i + 1, n, pal + d * (10**(n - 1) + 1), palis) else: for d in range(10): make_palindrome2(i + 1, n, pal + d * (10**(n - 1 - i) + 10**i), palis) def make_palindrome(i, n, s, a): if i == n: a.append(int(s)) return elif n - i == 2: for j in range(1, 10): make_palindrome(i + 2, n, str(j) + s + str(j), a) else: for j in range(0, 10): make_palindrome(i + 2, n, str(j) + s + str(j), a) if __name__ == '__main__': solve()