output_description: Print the number of the Shichi-Go-San numbers between 1 and N (inclusive).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: #include<bits/stdc++.h>
  using namespace std;
  typedef long long ll;
  /* TLEだった orz 
  int main() {
    ll N; cin >> N;
    ll val = 357, cnt = 0;
    while (N >= val) {
      string s = to_string(val);
      bool three=false,five=false,seven=false,ok=true;
      for(int i=0; i < s.size(); i++) {
        if(s[i]=='3')three=true;
        else if(s[i]=='5')five=true;
        else if(s[i]=='7')seven=true;
        else ok = false;
      }
      if(three&&five&&seven&&ok){
        cnt++;
        //cout<<"s = "<<s<<endl;
        //printf("cnt=%d\n",cnt);
      }
      val++;
    }
    cout << cnt << endl;
  } 
  */
  int N, ans;
  void dfs(ll x,bool flag3,bool flag5,bool flag7) {
      if(x > N) {
          return ;
      }
      if(flag3 && flag5 && flag7) {
          ans++;
      }
      dfs(x*10+3, true, flag5, flag7);
      dfs(x*10+5, flag3, true, flag7);
      dfs(x*10+7, flag3, flag5, true);
  }
  int main() {
      cin >> N;
      dfs(0,0,0,0);
      cout << ans << endl;
  }
problem_description: Statement
  
  You are given an integer N. Among the integers between 1 and N (inclusive),
  how many _Shichi-Go-San numbers_ (literally "Seven-Five-Three numbers") are
  there?
  
  Here, a Shichi-Go-San number is a positive integer that satisfies the
  following condition:
  
    * When the number is written in base ten, each of the digits `7`, `5` and `3` appears at least once, and the other digits never appear.
samples: [{"input": "575", "output": "4\n    \n\nThere are four Shichi-Go-San numbers not greater than 575: 357, 375, 537 and\n573.\n\n* * *"}, {"input": "3600", "output": "13\n    \n\nThere are 13 Shichi-Go-San numbers not greater than 3600: the above four\nnumbers, 735, 753, 3357, 3375, 3537, 3557, 3573, 3575 and 3577.\n\n* * *"}, {"input": "999999999", "output": "26484"}]