#include<iostream>
#include<cmath>
#define int unsigned long long
using namespace std;
const int N=10000005;
int n,k;
int ans;
int del[105];
int qpow(int a,int b){
int res=1;
for(;b;b>>=1,a*=a) if(b&1) res*=a;
return res;
}
int find(int x){
int l=2,r=1000000000;
int res=0;
while(l<=r){
int mid=(l+r)>>1;
if(x<=log2(n)/log2(mid)) res=mid,l=mid+1;
else r=mid-1;
}
return res;
}
signed main(){
scanf("%llu%llu",&n,&k);
ans=1;
for(int i=log2(n);i>=k;i--){
int t=find(i);
for(int j=2;j<i;j++) if(i%j==0) del[j]+=(t-1-del[i]);
ans+=(t-1-del[i]);
}
printf("%llu\n",ans);
return 0;
}