#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18 + 7;
const long long mod = 1e9 + 7;
int n;
int a[10005];
multiset<int> S;
int res = 0;
int main() {
  scanf("%d", &n);
  for (long long(i) = 0; (i) < (n); ++(i)) {
    scanf("%d", a + i);
  }
  sort(a, a + n);
  for (long long(i) = 0; (i) < (n); ++(i)) {
    multiset<int>::iterator it = S.upper_bound(a[i]);
    if (it == S.begin()) {
      S.insert(1);
      continue;
    }
    --it;
    int cur = (*it) + 1;
    S.erase(it);
    S.insert(cur);
  }
  printf("%d\n", (int)S.size());
  return 0;
}
