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.

n=input()
nums=[]

def create_num(n,d1,d2):
    if(n==1):
        return [d1,d2]
    else:
        nums2=create_num(n-1,d1,d2)
        nums=nums2[:]
        for x in nums2:
            if(int(x)==0):
                nums.append(d1)
                nums.append(d2)
            else:
                nums.append(x+d1)
                nums.append(x+d2)
        return nums

for x in range(1,10):
    for y in range(10):
        nums=nums+create_num(len(n),str(x),str(y))

nums=list(set(nums))

count=0

for x in range(len(nums)):
    if(int(nums[x])<=int(n)):
        count=count+1

print(count-1)