Polycarpus loves lucky numbers. Everybody knows that lucky numbers are positive integers, whose decimal representation (without leading zeroes) contain only the lucky digits *x* and *y*. For example, if *x* = 4, and *y* = 7, then numbers 47, 744, 4 are lucky.

Let's call a positive integer *a* undoubtedly lucky, if there are such digits *x* and *y* (0 ≤ *x*, *y* ≤ 9), that the decimal representation of number *a* (without leading zeroes) contains only digits *x* and *y*.

Polycarpus has integer *n*. He wants to know how many positive integers that do not exceed *n*, are undoubtedly lucky. Help him, count this number.
The first line contains a single integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">9</sup>) — Polycarpus's number.
global ans
ans = 0;
global n
def dfs(num):
    global ans
    if num > n :
        return
    a = [0]*10
    k = num
    while k != 0 :
        a[int(k%10)] += 1
        k = k / 10
    cnt = 0
    for i in range(10):
        if a[i] > 0 :
            cnt += 1
    if cnt > 2 :
        return
    if num > 0 :
        ans += 1
    for i in range(10):
        if i == 0 and num == 0 :
            continue
        dfs(num*10 + i)
global n
n = int(input())
dfs(0)
print(ans)