#include <iostream>
#include <algorithm>
using namespace std;
int a[100010], n, k, ans = 0x3f3f3f3f;
struct node {
int num;
int r;
}s[100010];
bool cmp(node a, node b) {
return a.num < b.num;
}
int main() {
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n);
for(int i = 0; i < n; i++) {
bool f = false;
sort(s, s + k, cmp);
for(int j = 0; j < k; j++) {
if(a[i] == s[j].r + 1) {
s[j].r++;
s[j].num++;
f = true;
break;
}
}
if(!f) {
s[k].r = a[i];
s[k].num++;
k++;
}
}
for(int i = 0; i < k; i++) {
ans = min(s[i].num, ans);
}
cout << ans;
return 0;
}