#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, b, c, d, e;
  scanf("%d", &n);
  int a[n];
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  sort(a, a + n);
  vector<int> pile;
  pile.push_back(a[0]);
  int dp[101];
  memset(dp, 0, sizeof(dp));
  dp[0] = 1;
  for (int i = 1; i < n; i++) {
    int fl = 1;
    for (int j = 0; j < pile.size(); j++) {
      if (pile[j] < a[i]) {
        pile[j] = a[i];
        dp[j]++;
        fl = 0;
        break;
      } else if (dp[j] <= a[i]) {
        pile[j] = a[i];
        dp[j]++;
        fl = 0;
        break;
      }
    }
    if (fl) {
      int x = pile.size();
      pile.push_back(a[i]);
      dp[x]++;
    }
  }
  printf("%d\n", pile.size());
  return 0;
}
