#include <bits/stdc++.h>
using namespace std;
bool debug = true;
template <typename T1, typename T2>
ostream& operator<<(ostream& os, pair<T1, T2> ptt) {
  os << ptt.first << "," << ptt.second;
  return os;
}
template <typename T>
ostream& operator<<(ostream& os, vector<T> vt) {
  os << "{";
  for (int i = 0; i < vt.size(); i++) {
    os << vt[i] << " ";
  }
  os << "}";
  return os;
}
int n, L, a;
int t[100005], l[100005];
long long ans;
int main(int argc, char* argv[]) {
  ios::sync_with_stdio(0);
  cin >> n >> L >> a;
  for (int i = 0; i < n; i++) {
    cin >> t[i] >> l[i];
  }
  ans += (t[0]) / a;
  for (int i = 0; i < n - 1; i++) {
    int endOfThis = t[i] + l[i];
    ans += (t[i + 1] - endOfThis) / a;
  }
  int endOfTot = t[n - 1] + l[n - 1];
  ans += (L - endOfTot) / a;
  cout << ans;
  return 0;
}
