#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 5;
long long n, x, y, cost[N];
pair<long long, long long> a[N];
multiset<pair<pair<long long, long long>, long long> > s;
int main() {
  long long t, i, j, k, ans, m;
  t = 1;
  while (t--) {
    cin >> n >> x >> y;
    for (long long p = 1; p < n + 1; p++) {
      cin >> a[p].first >> a[p].second;
      s.insert({{a[p].second, a[p].first}, p});
    }
    sort(a + 1, a + n + 1);
    for (long long p = 1; p < n + 1; p++) {
      cost[p] = (x + y * (a[p].second - a[p].first));
      if (s.empty() || ((s.begin()->first).first) >= a[p].first) continue;
      auto it = s.lower_bound({{a[p].first, 0}, 0});
      it--;
      long long pre = it->first.first;
      if (y * (a[p].second - pre) >= cost[p]) continue;
      cost[p] = y * (a[p].second - pre);
      s.erase(it);
    }
    ans = 0;
    for (long long p = 1; p < n + 1; p++) {
      cost[p] %= 1000000007;
      ans = (ans + cost[p]) % 1000000007;
    }
    cout << ans;
  }
  return 0;
}
