#include <bits/stdc++.h>
using namespace std;
vector<int> A;
void dfs(int i, int N) {
  A.push_back(i);
  if (i * 10 + 3 <= N) dfs(i * 10 + 3, N);
  if (i * 10 + 5 <= N) dfs(i * 10 + 5, N);
  if (i * 10 + 7 <= N) dfs(i * 10 + 7, N);
}
int main() {
  int N, ans = 0;
  cin >> N;
  dfs(0, N);
  for (const auto& e : A) {
    string s = to_string(e);
    if ((s.find('3') != string::npos) && (s.find('5') != string::npos) &&
        (s.find('7') != string::npos))
      ans++;
  }
  cout << ans << endl;
}
