#include <bits/stdc++.h>
using namespace std;
const long long int M = 2e5 + 10;
const long long int mod = 1e9 + 7;
const long long int infi = LLONG_MAX;
long long int ans, k, n, x, y, m, mymax = LLONG_MIN, mymin = LLONG_MAX, b, c, z,
                                  sum;
vector<pair<long long int, long long int> > v;
set<pair<long long int, long long int> > s;
long long int sub(long long int a, long long int b) {
  a -= b;
  a %= mod;
  a += mod;
  a %= mod;
  return a;
}
int main() {
  long long int i, j;
  scanf("%lld %lld %lld", &n, &x, &y);
  for (i = 1; i < n + 1; i++) {
    scanf("%lld %lld", &b, &c);
    v.push_back({b, c});
    ans = (ans + (sub(c, b) * y) % mod) % mod;
  };
  ;
  sort(v.begin(), v.end());
  for (i = 0; i < n; i++) {
    auto it = s.lower_bound({v[i].first, 0});
    if (it != s.begin()) {
      it--;
      if (y * (v[i].first - it->first) < x) {
        ans += (y * sub(v[i].first, it->first));
        s.erase(it);
      } else {
        ans += x;
      }
    } else {
      ans += x;
    }
    s.insert({v[i].second, i + 1});
    ans %= mod;
  }
  printf("%lld\n", ans);
  return 0;
}
