#include <bits/stdc++.h>
using namespace std;
const int Maxn = 100005, mod = 1e9 + 7;
struct node {
  int l, r;
} w[Maxn];
int main() {
  int n, x, y;
  cin >> n >> x >> y;
  long long ans = 0;
  for (int i = 1; i <= n; i++) cin >> w[i].l >> w[i].r;
  sort(w + 1, w + n + 1, [](const node& a, const node& b) {
    return a.l < b.l || (a.l == b.l && a.r < b.r);
  });
  priority_queue<int> Q1, Q2;
  for (int i = 1; i <= n; i++) {
    while (Q2.size() && -Q2.top() < w[i].l) Q1.push(-Q2.top()), Q2.pop();
    long long cost = x;
    if (Q1.size()) cost = min(cost, 1ll * y * (w[i].l - Q1.top()));
    ans = (ans + cost + 1ll * y * (w[i].r - w[i].l)) % mod;
    if (cost != x) Q1.pop();
    Q2.push(-w[i].r);
  }
  cout << ans << "\n";
  return 0;
}
