#include <bits/stdc++.h>
int n, MaxStr, i, x, f[105], ans;
int max(int a, int b) { return a > b ? a : b; }
void solve(int str, int now) {
  if (str > MaxStr) return;
  if ((now > str) || (!f[str]))
    solve(str + 1, now);
  else {
    f[str]--;
    solve(str, now + 1);
  }
}
int main() {
  scanf("%d", &n);
  memset(f, 0, sizeof(f));
  for (MaxStr = 0, i = 1; i <= n; ++i) {
    scanf("%d", &x);
    MaxStr = max(x, MaxStr);
    f[x]++;
  }
  for (ans = i = 0; i <= MaxStr; ++i)
    while (f[i]) {
      solve(i, 0);
      ans++;
    }
  printf("%d\n", ans);
}
