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.
def generate():
    result = set()
    for x in range(10):
        for y in range(10):
            for i in range(1, 2 ** 9 - 1):
                num = [''] * 10
                for j, char in enumerate(str(bin(i))[2:]):
                    if char == '1':
                        num[j] = str(x)
                    else:
                        num[j] = str(y)
                num = ''.join(num)
                for k in range(len(num) - 1):
                    if num[k] != num[k + 1]:
                        result.add(int(''.join(num)))
                        break
    result = list(result)
    result.sort()
    result.append(1000000000)
    return result


def main():
    data = generate()
    n = int(input())
    for i, x in enumerate(data):
        if x > n:
            print(i)
            return
    print(len(data))


main()
