#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int lowbit(int x) { return x & (-x); }
const int maxn = 1e5 + 5, INF = 0x3f3f3f3f;
long long n, k, p[maxn];
int m, cur;
int main(void) {
  scanf("%lld%d%lld", &n, &m, &k);
  for (int i = 1; i <= m; ++i) scanf("%lld", &p[i]), --p[i];
  int ans = 0;
  while (cur < m) {
    int l = cur + 1, r = m, mid, pp;
    long long pos = (p[l] - cur) / k;
    while (l <= r) {
      mid = (l + r) >> 1;
      if ((p[mid] - cur) / k <= pos)
        pp = mid, l = mid + 1;
      else
        r = mid - 1;
    }
    ++ans, cur = pp;
  }
  printf("%d\n", ans);
  return 0;
}
