#include <bits/stdc++.h>
using namespace std;
const int N = 100005, mod = 1e9 + 7;
pair<int, int> a[N];
multiset<int> s;
int n, x, y;
long long ans;
int main() {
  set<int>::iterator it;
  scanf("%d%d%d", &n, &x, &y);
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].first, &a[i].second);
  sort(a + 1, a + 1 + n);
  for (int i = 1; i <= n; i++) {
    it = s.upper_bound(-a[i].first);
    if (it != s.end()) {
      int r0 = -*it;
      if (1LL * (a[i].first - r0) * y < x) {
        (ans += 1LL * (a[i].first - r0) * y % mod) %= mod;
        s.erase(it);
      } else
        (ans += x) %= mod;
    } else
      (ans += x) %= mod;
    (ans += 1LL * (a[i].second - a[i].first) * y % mod) %= mod;
    s.insert(-a[i].second);
  }
  printf("%I64d\n", ans);
  return 0;
}
