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
#_________________ Mukul Mohan Varshney _______________#

#Template
import sys
import os
import math
import copy
from math import gcd
from bisect import bisect
from io import BytesIO, IOBase
from math import sqrt,floor,factorial,gcd,log,ceil
from collections import deque,Counter,defaultdict
from itertools import permutations, combinations

#define function 
def Int(): return int(sys.stdin.readline())
def Mint(): return map(int,sys.stdin.readline().split())
def Lstr(): return list(sys.stdin.readline().strip())
def Str(): return sys.stdin.readline().strip()
def Mstr(): return map(str,sys.stdin.readline().strip().split())
def List(): return list(map(int,sys.stdin.readline().split()))
def Hash(): return dict()
def Mod(): return 1000000007
def Ncr(n,r,p): return ((fact[n])*((ifact[r]*ifact[n-r])%p))%p
def Most_frequent(list): return max(set(list), key = list.count)
def Mat2x2(n): return [List() for _ in range(n)]

def Prime_factors(n):
     i = 2
     factors = set()
     while i * i <= n:
          if n % i:
               i += 1
          else:
               n //= i
               factors.add(i)
     if n > 1:
          factors.add(n)
     if len(factors)==2:
          return True
     else:
          return False

def Divisors(n) : 
     l = []  
     for i in range(1, int(math.sqrt(n) + 1)) :
          if (n % i == 0) : 
               if (n // i == i) : 
                    l.append(i) 
               else : 
                    l.append(i)
                    l.append(n//i)
     return l
     
def Sieve(n):                      
     prime=[True for i in range(n+1)]
     lst=[]
     p=2
     while p*p<=n:
          if prime[p]:
               for i in range(p*p,n+1,p):
                    prime[i]=False
          p=p+1
     for i in range(2,n+1):
          if prime[i]:
               lst.append(i)
     return lst    
 
def GCD(x,y):
     while(y):
          x, y = y, x % y
     return x
     
def minimum_integer_not_in_list(a):
     b=max(a)
     if(b<1):
          return 1
          
     A=set(a)
     B=set(range(1,b+1))
     D=B-A
     if len(D)==0:
          return b+1
     else:
          return min(D)
 
# Driver Code 	
def solution():
     n=int(input())
     a=0
     for i in range(n+1):
          if(Prime_factors(i)==True):
               a+=1
          
     print(a)
               

#Call the solve function          
if __name__ == "__main__":
     solution()  