//activity_bs.cpp
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

bool can(vector<int> &a, int t)
{
	int cnt = 0;
	for(const auto &it : a) if(it >= t) ++cnt;
	return cnt >= t;
}

int main()
{
	int n, t;
	vector<int> a;
	scanf("%d", &n);
	a.resize(n);
	for(int i = 0; i < n; ++i)
	{
		scanf("%d", &a[i]);
	}
	int x = 1, y = n, ans = 1;
	while(x <= y)
	{
		int mid = (x + y) / 2;
		if(can(a, mid))
		{
			ans = max(ans, mid); 
			x = mid + 1;
		}
		else
		{
			y = mid - 1;
		}
	}
	printf("%d\n", ans);
	return 0;
}
