#include <bits/stdc++.h>
int b[110], vis[110];
int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int main(void) {
  int n, i, cur, k, pile;
  while (scanf("%d%*c", &n) != EOF) {
    for (i = 0; i < n; i++) scanf("%d", &b[i]);
    qsort(b, n, 4, cmp);
    memset(vis, 0, sizeof(vis));
    k = 0;
    pile = 0;
    while (k < n) {
      cur = 0;
      pile++;
      for (i = 0; i < n; i++)
        if (!vis[i] && cur <= b[i]) {
          vis[i] = 1;
          cur++;
          k++;
        }
    }
    printf("%d\n", pile);
  }
  return 0;
}
