#include using namespace std; long dp[12][2]; int main() { string S; cin >> S; const int N = S.size(); long ans = 0; dp[0][0] = 1; for(int i = 0; i < N; i++) { for(int j = 0; j < 2; j++) { int lim = j ? 9 : S[i] - '0'; for(int d: {0,3,6,9}) if(d <= lim) { dp[i + 1][j || d < S[i]-'0'] += dp[i][j]; } } } long tmp = dp[N][0] + dp[N][1] - 4; for(int x = 10; x < 100 && x <= stoll(S); x++) { int t = (x % 10) + (x / 10); if (t % 3 == 0 and ((x /10) % 3 != 0)) { tmp++; } } cout << tmp << endl; }