#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  vector<int> v;
  for (int i = 0; i < n; ++i) {
    int curr;
    cin >> curr;
    v.push_back(curr);
  }
  sort(v.begin(), v.end());
  vector<vector<int>> piles;
  for (int curr : v) {
    bool placed = false;
    for (auto &pile : piles) {
      if ((int)pile.size() <= curr) {
        placed = true;
        pile.push_back(curr);
        break;
      }
    }
    if (!placed) {
      vector<int> newpile;
      newpile.push_back(curr);
      piles.push_back(newpile);
    }
  }
  std::cout << piles.size() << std::endl;
  return 0;
}
