#include <bits/stdc++.h>
using namespace std;
pair<int, int> ara[200005];
int main() {
  int n, x, y;
  scanf("%d %d %d", &n, &x, &y);
  for (int i = 1; i <= n; i++) cin >> ara[i].first >> ara[i].second;
  long long ans = 0;
  multiset<int> ms;
  sort(ara + 1, ara + n + 1);
  for (int i = 1; i <= n; i++) {
    auto it = ms.lower_bound(ara[i].first);
    if (it == ms.begin()) {
      ans += x;
      ans %= 1000000007;
      ms.insert(ara[i].second);
    } else {
      --it;
      long long aro = ara[i].first - *it;
      if (aro * y < x) {
        ans += aro * y;
        ans %= 1000000007;
        ms.erase(it);
      } else
        ans += x, ans %= 1000000007;
      ms.insert(ara[i].second);
    }
  }
  for (int i = 1; i <= n; i++)
    ans += 1LL * (ara[i].second - ara[i].first) * y, ans %= 1000000007;
  cout << ans << endl;
  return 0;
}
