#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b);
int main(void) {
  long long int N = 0;
  long long int A = 0;
  long long int B = 0;
  long long int C = 0;
  long long int D = 0;
  long long int M = 0;
  long long int h[1000] = {};
  long long int b[100] = {};
  string S, T, U[52];
  long long int count = 0;
  long long int count2 = 0;
  float sum = 0;
  long long int min = 1000000000000;
  long long int max = 0;
  long long int smax = 0;
  long long int max2 = 0;
  long long int smax2 = 0;
  int tmax = 0;
  int tmax2 = 0;
  int flag = 0;
  char temp, head;
  cin >> N;
  for (long long int i = (100); i < (N); ++i) {
    S = to_string(i);
    A = S.find("3");
    B = S.find("5");
    C = S.find("7");
    if (A != string::npos && B != string::npos && C != string::npos) {
      max++;
    }
    if (count == 3 || count == 5) {
      count++;
      i++;
    } else if (count == 7) {
      count -= 5;
      i += 5;
    }
    count++;
  }
  cout << max << endl;
  return 0;
}
long long int gcd(long long int a, long long int b) {
  if (a < b) {
    long long int tmp = a;
    a = b;
    b = tmp;
  }
  long long int x = b;
  long long int y = a;
  long long int r = a % b;
  while (r != 0) {
    a = b;
    b = r;
    r = a % b;
  }
  return y / b * x;
}
