A number is called almost prime if it has exactly two distinct prime divisors. For example, numbers 6, 18, 24 are almost prime, while 4, 8, 9, 42 are not. Find the amount of almost prime numbers which are between 1 and n, inclusive.

Input

Input contains one integer number n (1 ≤ n ≤ 3000).

Output

Output the amount of almost prime numbers between 1 and n, inclusive.

Examples

Input

10


Output

2


Input

21


Output

8
#include <bits/stdc++.h>
using namespace std;
const int64_t mm = (int)(1e9 + 7);
const int N = 3 * (int)(1e3 + 1);
void cpc() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(NULL);
}
bool seive[N + 1];
int power(long long a, long long n, long long M = mm) {
  a = a % M;
  long long prod = 1;
  while (n) {
    if (n & 1) prod = prod * a % M;
    a = a * a % M;
    n /= 2;
  }
  return prod;
}
void seeve() {
  seive[1] = 1;
  seive[0] = 1;
  for (int i = 2; i * i <= N; i++) {
    if (seive[i]) continue;
    for (int j = 2; j * i <= N; j++) {
      seive[i * j] = 1;
    }
  }
}
vector<int> pp(N + 1, 0), ans(N + 2, 0);
void cec() {
  for (int i = 2; i < N; i++) {
    int a = i;
    int cnt = 0;
    for (int j = 2; j * j <= a; j++) {
      int c = 0;
      while (a % j == 0) a /= j, c++;
      if (c) cnt++;
    }
    if (a > 1) cnt++;
    pp[i] = cnt;
  }
  for (int i = 0; i < N; i++) {
    if (pp[i] == 2)
      pp[i] = 1;
    else
      pp[i] = 0;
  }
  for (int i = 1; i < N; i++) ans[i] = ans[i - 1] + pp[i];
}
void solve() {
  int n;
  cin >> n;
  cout << ans[n] << '\n';
}
int32_t main() {
  cpc();
  cec();
  solve();
}
