#include <bits/stdc++.h>
using namespace std;
int fx[] = {0, 1, 1, 1, 0, -1, -1, -1};
int fy[] = {1, 1, 0, -1, -1, -1, 0, 1};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, i, j, k, l, f = 0;
  cin >> n;
  int ara[n];
  for (i = 0; i < n; i++) {
    cin >> ara[i];
  }
  sort(ara, ara + n);
  vector<stack<int> > v;
  for (i = 0; i < n; i++) {
    f = 0;
    for (j = 0; j < v.size(); j++) {
      if (v[j].size() <= ara[i]) {
        v[j].push(ara[i]);
        f = 1;
        break;
      }
    }
    if (f == 0) {
      stack<int> st;
      st.push(ara[i]);
      v.push_back(st);
      st.pop();
    }
  }
  cout << v.size() << endl;
  return 0;
}
