#include <bits/stdc++.h>
template <typename T>
constexpr T my_abs(const T &x) {
  return x < 0 ? -x : x;
}
using ll = long long;
constexpr int MOD = 1e9 + 7;
inline int quick_pow(int a, int n) {
  int res = 1;
  while (n) {
    if (n & 1) res = (ll)res * a % MOD;
    a = (ll)a * a % MOD;
    n >>= 1;
  }
  return res;
}
ll arr[100005];
int main() {
  ll n, m, k;
  scanf("%lld%lld%lld", &n, &m, &k);
  for (int i = 0; i < m; i++) {
    scanf("%lld", arr + i);
    arr[i]--;
  }
  std::sort(arr, arr + m);
  int ans = 0, cur = 0;
  while (cur < m) {
    int lazy = cur;
    ll idx = (arr[cur] - lazy) / k;
    while (cur < m && (arr[cur] - lazy) / k == idx) cur++;
    ans++;
  }
  printf("%d\n", ans);
  return 0;
}
