#include <bits/stdc++.h>
using namespace std;
bool is_good(int x) {
  map<int, int> mp;
  while (x > 0) {
    int res = x % 10;
    x /= 10;
    mp[res]++;
  }
  if (mp[3] > 0 && mp[5] > 0 && mp[7] > 0 && mp.size() == 3) {
    return true;
  } else
    return false;
  return 0;
}
int ans;
int n;
void dfs(int x) {
  if (x > n) return;
  if (is_good(x)) ans++;
  if (x < 1e9) {
    dfs(10 * x + 3);
    dfs(10 * x + 5);
    dfs(10 * x + 7);
  }
}
int main() {
  cin >> n;
  dfs(0);
  cout << ans << endl;
}
