import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; class Main{ static final InputStream in=System.in; static final PrintWriter out=new PrintWriter(System.out); public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(in)); String line=""; while((line=br.readLine())!=null&&!line.isEmpty()){ StringTokenizer st=new StringTokenizer(line); int n=Integer.parseInt(st.nextToken()); int k=Integer.parseInt(st.nextToken()); boolean[] p=sieveOfEratosthenes(n); int[] a=new int[n+1]; for(int i=2;i<=n;i++){ if(p[i]) for(int j=i;j<=n;j+=i) a[j]++; } int ans=0; for(int i=2;i<=n;i++) if(a[i]>=k) ans++; out.println(ans); } out.flush(); } public static boolean[] sieveOfEratosthenes(int n){ boolean[] p=new boolean[n+1]; Arrays.fill(p,true); p[0]=false; p[1]=false; for(int i=2;i<=Math.sqrt(n);i++){ if(p[i]) for(int j=i+i;j<=n;j+=i) p[j]=false; } return p; } }