#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n, i, j, k, x, m;
  cin >> n >> m >> k;
  vector<long long int> v;
  for (i = 0; i < m; i++) {
    cin >> x;
    v.push_back(x);
  }
  long long int pg = k;
  long long int tmp = 0;
  long long int op = 0;
  long long int t = 10;
  for (i = 0; i < m;) {
    pg =
        ceil(((long double)v[i] - (long double)tmp) / (long double)k) * k + tmp;
    while (v[i] <= pg && i < m) {
      i++;
      tmp++;
    }
    op++;
  }
  cout << op;
}
