#include <bits/stdc++.h>
using namespace std;
int x[102], pile[102];
int MN(int a, int b) { return (a < b) ? a : b; }
int main() {
  int n, i, sz, j, flag;
  while (scanf("%d", &n) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%d", &x[i]);
    }
    sort(x + 1, x + n + 1);
    sz = 1;
    pile[sz] = 1;
    for (i = 2; i <= n; i++) {
      flag = 0;
      for (j = 1; j <= sz; j++) {
        if (pile[j] <= x[i]) {
          flag = 1;
          pile[j]++;
          break;
        }
      }
      if (flag == 0) pile[++sz] = 1;
    }
    printf("%d\n", sz);
  }
  return 0;
}
