#include using namespace std; #define REP(i,n) for(int i=0; i<(int)(n); i++) vector v; void go(long long x) { if (x > 1e9) return; if (x >= 100) v.push_back(x); go(10 * x); go(10 * x + 3); go(10 * x + 6); go(10 * x + 9); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); for (int i = 10; i < 100; i++) { if (i % 3 == 0) v.push_back(i); } go(3); go(6); go(9); sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); int n; cin >> n; int ret = upper_bound(v.begin(), v.end(), n) - v.begin(); cout << ret << endl; return 0; }