#include <bits/stdc++.h>
int quasi(int *a, int *N);
int main(void) {
  int N, i, j;
  scanf("%d", &N);
  int a[N], len;
  len = quasi(a, &N);
  int three, five, seven, r, q, ans = 0;
  for (i = 0; i < len; ++i) {
    three = 0, five = 0, seven = 0;
    q = a[i];
    for (j = 0; j < len; ++j) {
      r = q % 10;
      q /= 10;
      if (r == 3)
        three++;
      else if (r == 5)
        five++;
      else if (r == 7)
        seven++;
      else
        break;
    }
    if (three >= 1 && five >= 1 && seven >= 1) ans++;
  }
  printf("%d\n", ans);
  return 0;
}
int quasi(int *a, int *N) {
  int i, j, k, n = -1;
  for (i = 3; i <= 7; i = i + 2) {
    for (j = 3; j <= 7; j = j + 2) {
      for (k = 3; k <= 8; k = k + 2) {
        n++;
        a[n] = i * 100 + j * 10 + k;
      }
    }
  }
  i = 0, k = 27;
  while (a[k] < *N) {
    a[k] = a[i] * 10 + 3;
    if (a[k] >= *N) break;
    k++;
    a[k] = a[i] * 10 + 5;
    if (a[k] >= *N) break;
    k++;
    a[k] = a[i] * 10 + 7;
    if (a[k] >= *N) break;
    k++;
    i++;
  }
  return k;
}
