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
import java.util.*;
import java.math.*;
import java.io.*;
public class Main {
    public static StringTokenizer st;
    public static BufferedReader scan;
    public static PrintWriter out;
    public static void main(String[] args) throws  IOException{
        scan = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
        int n = nextInt(), ans = 0;
        for(int i = 2; i <= n; i++){
          Set <Integer>s = new HashSet();
          int j = 2;
          int x = i;
          while(x > 1){
              if(x % j == 0){
                  s.add(j);
                  x /= j;
              }else j++;
          }
          if(s.size() == 2)ans++;
        }
         out.println(ans);
        out.close();
        scan.close();
    }

    public static BigDecimal nextBigDecimal() throws  IOException {
        return new BigDecimal(next());
    }
    public static BigInteger nextBigInteger() throws  IOException {
        return new BigInteger(next());
    }
    public static long nextLong() throws  IOException {
        return Long.parseLong(next());
    }
    public static double nextDouble() throws  IOException {
        return Double.parseDouble(next());
    }
    public static int nextInt() throws  IOException {
        return Integer.parseInt(next());
    }
    public static String next() throws IOException {
        while(st == null || !st.hasMoreTokens()){
            st = new StringTokenizer(scan.readLine());
        }
        return st.nextToken();
    }
}