#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, k;
  int m;
  cin >> n >> m >> k;
  set<long long> removal;
  for (int i = 0; i < m; i++) {
    long long x;
    cin >> x;
    removal.insert(x);
  }
  long long total = 0;
  long long offset = 0;
  set<long long>::iterator itr = removal.begin();
  while (itr != removal.end()) {
    auto num = *itr;
    auto cur_offset = offset;
    auto a = num - offset;
    auto r = a % k, d = a / k;
    long long K = 0;
    if (r == 0) {
      K = a;
    } else {
      K = k * (d + 1);
    }
    total++;
    do {
      offset++;
      itr++;
    } while (itr != removal.end() && *itr - cur_offset <= K);
  }
  cout << total << endl;
  ;
}
