from collections import deque n = int(input()) # まず3の倍数なら桁話は3の倍数 # # 1212ダメ # 3の倍数でないものが現れるのは2桁の時のみ? # 1515 - 11でダメ # 3桁以上だと3の倍数以外が桁に現れると条件を満たさない? # 3の倍数のうち、3の倍数のみが桁に現れるものの数 # -> 桁DPでもいいけど全部列挙できる # 2桁は全部見つける、1桁は最後に除外 two = [12, 15, 18, 21, 24, 27, 42, 45, 48, 51, 54, 57, 72, 75, 78, 81, 84, 87] ans = 0 q = deque() q.append(3) q.append(6) q.append(9) while len(q) > 0: x = q.popleft() if x > n: continue ans += 1 for y in [0, 3, 6, 9]: q.append(x * 10 + y) for t in two: if t <= n: ans += 1 print(ans - 3)