#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
const int N=1e5+10;
int n,x,y;
multiset<int> s;
multiset<int>::iterator ss;
struct P {
int l,r;
} a[N];
bool cmp(P x,P y) {
if(x.l==y.l) return x.r<y.r;
return x.l<y.l;
}
int main() {
//freopen("in.txt","r",stdin);
scanf("%d%d%d",&n,&x,&y);
ll ans=0;
for(int i=0; i<n; i++) {
scanf("%d%d",&a[i].l,&a[i].r);
ans=(ans+1ll*(a[i].r-a[i].l)*y%mod)%mod;
}
sort(a,a+n,cmp);
for(int i=0; i<n; i++) {
ss=s.lower_bound(a[i].l);
if(ss==s.begin()) {
ans=(ans+x)%mod;
s.insert(a[i].r);
} else {
ss--;
if(1ll*(a[i].l-*ss)*y>=x) {
ans=(ans+x)%mod;
s.insert(a[i].r);
} else {
ans=(ans+1ll*(a[i].l-*ss)*y%mod)%mod;
s.erase(ss);
s.insert(a[i].r);
}
}
}
printf("%lld\n",ans);
return 0;
}