// Born_To_Laugh - Hughie Do
#include <bits/stdc++.h>
#define alle(AC) AC.begin(), AC.end()
#define fi first
#define se second
using namespace std;
typedef long long ll;
[[maybe_unused]] const ll MOD = 998244353, INF = 3e18 + 7;
#define int ll
vector<pair<int, int>> range;
int n, A, B;
int a;
int chutrinh;
void solve(){
cin >> n >> A >> B;
a = A / __gcd(B + 1, A);
chutrinh = a * B;//0 -> chutrinh - 1
for(int i=1; i<=n; ++i){
int l, r;cin >> l >> r;
if(r - l + 1 >= chutrinh){
cout << chutrinh << '\n';
exit(0);
}
l = l % chutrinh;
r = r % chutrinh;
if(l <= r) range.push_back({l, r});
else{
range.push_back({l, chutrinh - 1});
range.push_back({0, r});
}
}
sort(alle(range));
ll ans = 0;
ll maxr = -1;
for(auto &elm: range){
if(elm.se - max(elm.fi - 1, maxr) >= 1ll){
ans += elm.se - max(elm.fi - 1, maxr);
}
maxr = max(maxr, elm.se);
}
cout << ans << '\n';
}
signed main(){
// freopen("inp.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
solve();
}