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.
from sys import stdin, stdout
input = stdin.readline
def print(*args, end='\n', sep=' ') -> None:
	stdout.write(sep.join(map(str, args)) + end)
def int_map():
	return map(int, input().split())
def list_int():
	return list(map(int, input().split()))

def genn(v, x, y):
	if not x and not y:
		return

	global alll
	if v > 10**9:
		return
	if v or x:
		genn(v*10 + x, x, y)
	if v or y:
		genn(v*10 + y, x, y)
	alll.append(v)



alll = []
for i in range(10):
	for j in range(10):
		genn(i, i, j)
		genn(j, i, j)
alll = sorted(set(alll))
target = int(input())
l, r = 0, len(alll) - 1
indx = -1
while l <= r:
	mid = l + (r - l) // 2
	if alll[mid] <= target:
		indx = mid
		l = mid + 1
	else:
		r = mid - 1
print(indx)



