#include <bits/stdc++.h>
using namespace std;
stack<int> st;
struct hh {
  long long t, id;
  bool d;
} s[200020];
bool cmp(const hh &x, const hh &y) {
  return x.t == y.t ? x.d < y.d : x.t < y.t;
}
struct hhh {
  long long l, r;
} a[200020];
int n;
long long X, Y;
int main() {
  long long x, y;
  cin >> n >> X >> Y;
  for (long long i = 1; i <= n; i++) {
    cin >> x >> y;
    a[i] = (hhh){x, y};
    s[i * 2 - 1] = (hh){x, i, 0};
    s[i * 2] = (hh){y, i, 1};
  }
  long long ans = 0;
  sort(s + 1, s + n + n + 1, cmp);
  for (long long i = 1; i <= 2 * n; i++) {
    if (s[i].d)
      st.push(s[i].t);
    else {
      y = a[s[i].id].r;
      if (st.empty()) {
        ans += (X + Y * (y - s[i].t) % (int)(1e9 + 7)) % (int)(1e9 + 7);
        ans %= (int)(1e9 + 7);
      } else {
        x = st.top();
        if (Y * (y - x) < X + Y * (y - s[i].t)) {
          ans += Y * (y - x) % (int)(1e9 + 7);
          ans %= (int)(1e9 + 7);
          st.pop();
        } else {
          ans += (X + Y * (y - s[i].t) % (int)(1e9 + 7)) % (int)(1e9 + 7);
          ans %= (int)(1e9 + 7);
        }
      }
    }
  }
  cout << ans;
}
