#include <bits/stdc++.h>
using namespace std;
int main(void) {
  vector<int> piles[105];
  vector<int> boxes;
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int buff;
    scanf("%d", &buff);
    boxes.push_back(buff);
  }
  sort(boxes.begin(), boxes.end());
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < n; j++) piles[j].clear();
    for (int j = 0; j < n; j++)
      piles[j % i].push_back(boxes[boxes.size() - j - 1]);
    bool able = true;
    for (int j = 0; j < i; j++) {
      int s = piles[j].size() - 1;
      for (int k = 0; k < piles[j].size(); k++) {
        if (piles[j][k] < s) {
          able = false;
          break;
        }
        s--;
      }
      if (!able) break;
    }
    if (able) {
      printf("%d\n", i);
      break;
    }
  }
  return 0;
}
