#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  scanf("%d", &n);
  vector<int> v;
  vector<int> st;
  vector<vector<int> > vv;
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    v.push_back(x);
  }
  sort(v.rbegin(), v.rend());
  for (int i = 0; i < n; i++) {
    int x = v[i];
    vector<int> temp(n + 1, 0);
    vv.push_back(temp);
    st.push_back(x);
  }
  int t1 = 0;
  int t2 = n - 1;
  int tt = 0;
  while (1) {
    if (t2 == t1 || t2 == tt) break;
    if (st[t1] - 1 >= vv[t1][0] && v[t2] >= vv[t1][0]) {
      int index = vv[t1][0];
      if (index == -1) index = 0;
      vv[t1][index + 1] = v[t2];
      vv[t1][0] = index + 1;
      t2--;
      if (tt < t1) tt = t1;
      t1 = 0;
    } else
      t1++;
  }
  printf("%d\n", t2 + 1);
  return 0;
}
