#include <bits/stdc++.h>
using namespace std;
long long int l, r, npr[1000010], ans, phi[1000100], vis[1000100], cnt, pr[1000100];
void prime() {
for (long long int i = 2; i <= 1000005; i++) {
if (!npr[i]) {
cnt++;
pr[cnt] = i;
}
for (long long int j = 1; j <= cnt && pr[j]*i <= 1000005; j++) {
npr[i * pr[j]] = 1;
if (i % pr[j] == 0)
break;
}
}
}
int main() {
scanf("%lld%lld", &l, &r);
prime();
for (long long int i = l; i <= r; i++) {
vis[i - l + 1] = i;
phi[i - l + 1] = i;
}
for (long long int i = 1; pr[i]*pr[i] <= r && i <= cnt; i++) {
long long int bgin = l / pr[i] * pr[i] + pr[i];
if (l % pr[i] == 0)
bgin = l;
for (long long int j = bgin; j <= r; j += pr[i]) {
phi[j - l + 1] = phi[j - l + 1] * (pr[i] - 1) / pr[i];
while (vis[j - l + 1] % pr[i] == 0) {
vis[j - l + 1] /= pr[i];
}
}
}
for (long long int i = 1; i <= r - l + 1; i++) {
if (vis[i] != 1) {
phi[i] = phi[i] * (vis[i] - 1) / vis[i];
}
ans = (ans + (l - 1 + i - phi[i]) % 666623333) % 666623333;
}
printf("%lld\n", ans);
}