#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define stp(n) fixed<<setprecision(n)
#define flash cin.tie(0); cin.sync_with_stdio(0);
#define el '\n'
#define Point pair<double, double> // Define Point as a pair of doubles
using namespace std;
//
//#pragma GCC optimize("03")
//#pragma GCC target("tune=native")
//#pragma GCC optimize("unroll-loops")
int dp[55][1 << 15];
int primes[15] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47};
int bin[55];
int solve(int rem, int msk) {
if (rem == 0)return 1;
int &ans = dp[rem][msk];
if (~ans)return ans;
ans = 0;
for (int i = 1; i <= rem; i++) {
if ((bin[i] & msk) == 0) {
ans += solve(rem - i, bin[i] | msk);
}
}
return ans;
}
void testCase() {
for (int i = 1; i <= 50; i++) {
int msk = 0;
for (int j = 0; j < 15; ++j)
if (i % primes[j] == 0)msk |= (1 << j);
bin[i] = msk;
}
memset(dp, -1, sizeof dp);
int l, r;
cin >> l >> r;
int ans = 0;
for (int i = l; i <= r; i++) {
ans += solve(i,0);
}
cout << ans;
}
int main() {
//freopen("dotak.in", "r", stdin);
// freopen("output.txt", "w", stdout);
flash;
int t = 1;
// cin >> t;
while (t--) {
testCase();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgc3RwKG4pIGZpeGVkPDxzZXRwcmVjaXNpb24obikKI2RlZmluZSBmbGFzaCBjaW4udGllKDApOyBjaW4uc3luY193aXRoX3N0ZGlvKDApOwojZGVmaW5lIGVsICdcbicKI2RlZmluZSBQb2ludCBwYWlyPGRvdWJsZSwgZG91YmxlPiAgIC8vIERlZmluZSBQb2ludCBhcyBhIHBhaXIgb2YgZG91YmxlcwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vCi8vI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIjAzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoInR1bmU9bmF0aXZlIikKLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgidW5yb2xsLWxvb3BzIikKCgoKaW50IGRwWzU1XVsxIDw8IDE1XTsKaW50IHByaW1lc1sxNV0gPSB7MiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOSwgMzEsIDM3LCA0MSwgNDMsIDQ3fTsKaW50IGJpbls1NV07CgppbnQgc29sdmUoaW50IHJlbSwgaW50IG1zaykgewogICAgaWYgKHJlbSA9PSAwKXJldHVybiAxOwogICAgaW50ICZhbnMgPSBkcFtyZW1dW21za107CiAgICBpZiAofmFucylyZXR1cm4gYW5zOwogICAgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHJlbTsgaSsrKSB7CiAgICAgICAgaWYgKChiaW5baV0gJiBtc2spID09IDApIHsKICAgICAgICAgICAgYW5zICs9IHNvbHZlKHJlbSAtIGksIGJpbltpXSB8IG1zayk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGFuczsKfQoKdm9pZCB0ZXN0Q2FzZSgpIHsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSA1MDsgaSsrKSB7CiAgICAgICAgaW50IG1zayA9IDA7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxNTsgKytqKQogICAgICAgICAgICBpZiAoaSAlIHByaW1lc1tqXSA9PSAwKW1zayB8PSAoMSA8PCBqKTsKICAgICAgICBiaW5baV0gPSBtc2s7CiAgICB9CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgaW50IGwsIHI7CiAgICBjaW4gPj4gbCA+PiByOwogICAgaW50IGFucyA9IDA7CgogICAgZm9yIChpbnQgaSA9IGw7IGkgPD0gcjsgaSsrKSB7CiAgICAgICAgYW5zICs9IHNvbHZlKGksMCk7CiAgICB9CiAgICBjb3V0IDw8IGFuczsKCn0KCmludCBtYWluKCkgewoKICAgIC8vZnJlb3BlbigiZG90YWsuaW4iLCAiciIsIHN0ZGluKTsKICAgIC8vICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKCiAgICBmbGFzaDsKICAgIGludCB0ID0gMTsKICAgIC8vICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICB0ZXN0Q2FzZSgpOwogICAgfQoKfQ==