#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long A, M, L, R;
cin >> A >> M >> L >> R;
if (M == 0) {
if (L <= A && R >= A) {
cout << 1 << endl;
}
else {
cout << 0 << endl;
}
return 0;
}
long long k_min = (L - A) / M;
if (A + k_min * M < L)k_min++;
long long k_max = (R - A) / M;
if (A + k_max * M > R)k_max--;
if (k_min <= k_max) {
cout << k_max - k_min + 1 << endl;
}
else {
cout << 0 << endl;
}
return 0;
}
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
long long generate(int n)
{
long long repunit = 0;
for (int i = 0; i < n; i++) {
repunit = repunit * 10 + 1;
}
return repunit;
}
int main()
{
int n;
cin >> n;
set<long long>sums;
vector<long long>repunits;
for (int i = 1; i <= 12; i++) {
repunits.push_back(generate(i));
}
for (int i = 0; i < repunits.size(); i++) {
for (int j = i; j < repunits.size(); j++) {
for (int k = j; k < repunits.size(); k++) {
long long sum = repunits[i] + repunits[j] + repunits[k];
sums.insert(sum);
}
}
}
vector<long long>result(sums.begin(), sums.end());
cout << result[n-1] << endl;
return 0;
}