#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
int res;
int cnt[100];
bool is_good(ll num) {
  for (int i = 0; i < int(10); i++) cnt[i] = 0;
  while (num) {
    int el = num % 10;
    cnt[el]++;
    num /= 10;
  }
  return (cnt[3] > 0 && cnt[5] > 0 && cnt[7 > 0]);
}
void dfs(ll num) {
  if (num > n) return;
  if (is_good(num)) res++;
  dfs(num * 10 + 3);
  dfs(num * 10 + 5);
  dfs(num * 10 + 7);
}
int main() {
  cin >> n;
  dfs(0);
  cout << res << endl;
}
