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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class AlmostPrime {

	// Se precalculan todos los primos desde el 2 hasta el 1500
	private static int[] primes = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549};
	
	public static void main(String[] args) throws IOException {
		int amountOfAlmostPrimes = 0;
		
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String input = in.readLine();
		int n = Integer.parseInt(input);
		
		int i = 1;
		while (i <= n) {
			if (isAlmostPrime(i)) {
				amountOfAlmostPrimes++;
			}
			i++;
		}

		System.out.print(amountOfAlmostPrimes);
		
	}
	

	public static boolean isAlmostPrime(int number) {
		int endIndex = getLowerIndex(number/2);
		if (endIndex <= 0) {
			return false;
		}
		
		int auxIndex = 0;
		int primeDivisors = 0;
		while (auxIndex <= endIndex) {
			if (number % primes[auxIndex] == 0) {
				primeDivisors++;
			}
			auxIndex++;
		}
		return primeDivisors == 2;
		
	}
	
	/**
	 * Obtiene el indice del array de primes que contiene el ultimo primo que es menor que el numero indicado
	 * @param number El numero contra el cual comparar
	 * @return El indice del ultimo primo menor
	 */
	public static int getLowerIndex(int number) {
		int index = 0;
		while (primes[index] <= number) {
			index++;
		}
		return index - 1;
		
		
	}
	
	/**
	 * Usada para calcular el listado original de primos
	 * @return true si es primo, false si no
	 */
	public static boolean isPrime(int number) {
		int divisor = 2;
		boolean prime = true;
		while (divisor < (number/2) + 1) {
			if (number % divisor == 0) {
				prime = false;
				break;
			}
			divisor++;
		}
		return prime;
	}

}
