#include
#include
#include
#include
#include
using namespace std;
int n, k;
int memo[1000][1000];
vector v [1000];
int dp(int n_1, int predhoden){
if(n_1 == n){
return 1;
}
if(memo[n_1][predhoden] != -1){
return memo[n_1][predhoden];
}
int mod = 1e9 + 7;
int res = 0;
for (int i = 0; i < v[predhoden].size(); i++) {
if(predhoden != v[predhoden][i] ){
res += dp(n_1 +1, v[predhoden][i] );
res = res% mod;
}
}
return memo[n_1][predhoden] = res;
}
int main(){
cin >> n >> k;
int res = 0;
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
memo[i][j]= -1;
}
}
for (int i = 1; i <= k; i++) {
for (int j = 1; j <= k; j++) {
if(i%j == 0 || j%i == 0){
v[i].push_back(j);
}
}
}
int mod = 1e9 + 7;
for (int i = 1; i <= k; i++) {
res += dp(1,i);
res %= mod;
}
cout << res << endl;
}