#include <bits/stdc++.h>
using namespace std;
const int dell[8][2] = {{1, 2},  {1, -2},  {2, 1},  {2, -1},
                        {-1, 2}, {-1, -2}, {-2, 1}, {-2, -1}};
long long mod = 1e9 + 7;
const long long inf = (1LL << 31) - 1;
const int maxn = 1e6 + 1;
const int maxm = 1e6 + 7;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int csize = 25;
int n, k, m, ar[maxn];
multiset<long long> se;
multiset<long long>::iterator it;
pair<int, int> p[maxn];
int main() {
  long long x, y;
  scanf("%d%lld%lld", &n, &x, &y);
  for (int i = 1; i <= n; i++) scanf("%d%d", &p[i].first, &p[i].second);
  sort(p + 1, p + n + 1);
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    long long a = p[i].first, b = p[i].second;
    it = se.lower_bound(a);
    if (it != se.begin()) {
      it--;
      if (a > *it && (a - *it - 1) * y <= x - y) {
        se.insert(b);
        ans = (ans + (b - *it) * y) % mod;
        se.erase(it);
        continue;
      }
    }
    se.insert(b);
    ans = (ans + x + (b - a) * y) % mod;
  }
  printf("%lld\n", ans);
  return 0;
}
