#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
vector<pair<int, int> > v;
deque<int> tmp;
int n, x, y;
int main() {
  scanf("%d%d%d", &n, &x, &y);
  int k = x / y;
  for (int i = 1; i <= n; i++) {
    int l, r;
    scanf("%d%d", &l, &r);
    v.push_back(pair<int, int>(l, -1)), v.push_back(pair<int, int>(r, r - l));
  }
  sort(v.begin(), v.end());
  long long ans = 0;
  tmp.push_back(-mod);
  for (pair<int, int> s : v) {
    if (s.second == -1) {
      if (!tmp.empty() && s.first - tmp.back() <= k) {
        ans = (ans + 1ll * y * (s.first - tmp[tmp.size() - 1])) % mod;
        tmp.pop_back();
      } else
        tmp.clear(), ans = (ans + x) % mod;
    } else {
      ans = (ans + 1ll * y * (s.second)) % mod;
      tmp.push_back(s.first);
    }
  }
  printf("%lld\n", ans);
  return 0;
}
