#include <bits/stdc++.h>
using namespace std;
const int nmax = 1e5;
long long v[nmax + 1];
int main() {
  long long n, k;
  int m;
  fscanf(stdin, "%I64d%d%I64d", &n, &m, &k);
  int ans = 0;
  for (int i = 1; i <= m; ++i) fscanf(stdin, "%I64d", &v[i]);
  for (int i = 1; i <= m;) {
    int ind = i;
    while (ind <= m && (v[i] - 1 - (i - 1)) / k == (v[ind] - 1 - (i - 1)) / k) {
      ++ind;
    }
    ++ans;
    i = ind;
  }
  fprintf(stdout, "%d\n", ans);
  return 0;
}
