#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long N, K;
int M;
vector<long long> special;
int sol = 0;
int main() {
  scanf("%lld %d %lld", &N, &M, &K);
  for (int i = 0; i < M; i++) {
    long long v;
    scanf("%lld", &v);
    special.push_back(v);
  }
  int curr = 0, add = 0;
  while (curr < M) {
    sol++;
    long long v = special[curr];
    v--;
    v -= (long long)add;
    long long page = v / K;
    long long en = K + K * page;
    long long toAdd = 0;
    while (curr < M && special[curr] - add <= en) {
      curr++;
      toAdd++;
    }
    add += toAdd;
  }
  printf("%d\n", sol);
  return 0;
}
