n = int(input()) ans = 0 threes = 0 for i in range(10, min(100, n+1)): p, q = divmod(i, 10) if (p + q) % 3 == 0: ans += 1 if p % 3 == 0: threes += 1 if n < 100: print(ans) exit() ans -= threes + 4 n = str(n) dp = [[0, 0] for _ in range(len(n) + 1)] dp[0][0] = 1 for i, x in enumerate(map(int, n)): if x == 0 or x == 3 or x == 6 or x == 9: dp[i+1][0] += dp[i][0] dp[i+1][1] += (x + 2) // 3 * dp[i][0] dp[i+1][1] += dp[i][1] * 4 ans += sum(dp[len(n)]) print(ans)