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.io.*;
import java.math.*;
import java.util.*;

/**
* 
* @author Togrul Gasimov (ttogrul30@gmail.com)
*         Created on 13.09.2013
*/

public class Main {
 public static void main(String[] args) /*throws FileNotFoundException*/ { 
     InputStream inputStream = System.in;
     OutputStream outputStream = System.out;
     FastScanner in = new FastScanner(inputStream);
     FastPrinter out = new FastPrinter(outputStream);
     TaskA solver = new TaskA();
     solver.solve(1, in, out);
     out.close();
 }
}

class TaskA{
   
 public void solve(int testNumber, FastScanner scan, FastPrinter out) /*throws FileNotFoundException*/ {
     //Scanner sscan = new Scanner(new File("input.txt"));
     //PrintStream oout = new PrintStream(new File("output.txt"));
	 int[] d = new int[1000000];
     for(int i = 2; i <= 3000; i++){
    	 if(d[i] == 0)
    	 for(int j = i; j <= 3000; j+= i){
    		 d[j]++;
    	 }
     }
     int ans = 0;
     int n = scan.nextInt();
     for(int i = 1; i <= n; i++){
    	 if(d[i] == 2)ans++;
     }
     out.println(ans);
     //sscan.close();
     //oout.close();
 }
}

class FastScanner extends BufferedReader {
 public FastScanner(InputStream is) {
     super(new InputStreamReader(is));
 }
 
 public int read() {
     try{
         int ret = super.read();
         return ret;
     }catch(Exception e){
         throw new InputMismatchException();
     }
 }
 
 public String next() {
     StringBuilder sb = new StringBuilder();
     int c = read();
     while (isWhiteSpace(c)) {
         c = read();
     }
     if (c < 0) {
         return null;
     }
     while (c >= 0 && !isWhiteSpace(c)) {
         sb.appendCodePoint(c);
         c = read();
     }
     return sb.toString();
 }
 
 static boolean isWhiteSpace(int c) {
     return c >= 0 && c <= 32;
 }
 
 public int nextInt() {
     int c = read();
     while (isWhiteSpace(c)) {
         c = read();
     }
     int sgn = 1;
     if (c == '-') {
         sgn = -1;
         c = read();
     }
     int ret = 0;
     while (c >= 0 && !isWhiteSpace(c)) {
         if (c < '0' || c > '9') {
             throw new NumberFormatException("digit expected " + (char) c
                     + " found");
         }
         ret = ret * 10 + c - '0';
         c = read();
     }
     return ret * sgn;
 }
 
 public long nextLong() {
     return Long.parseLong(next());
 }
 
 public double nextDouble() {
     return Double.parseDouble(next());
 }
 
 public BigInteger nextBigInteger() {
     return new BigInteger(next());
 }
 
 public BigDecimal nextBigDecimal(){
     return new BigDecimal(next());
 }
 
 public String readLine(){
     try{
         return super.readLine();
     }catch(IOException e){
         return null;
     }
 }
}

class FastPrinter extends PrintWriter {
 
 public FastPrinter(OutputStream out) {
     super(out);
 }
 public FastPrinter(Writer out) {
     super(out);
 }
}