#pragma GCC optimize("Ofast") #include #define LL long long int #define ULL unsigned LL #define LD long double #define FI first #define SE second #define PB push_back #define PF push_front #define V vector #define PQ priority_queue #define ALL(x) x.begin(), x.end() #define SZ(x) (int)(x).size() #define FORI(i, a, b) for(int i = a; i < b ; ++i) #define FORD(i, a, b) for(int i = a; i > b ; --i) using namespace std; using pii = pair; int main(){ ifstream cin("destruction.in"); ofstream cout("destruction.out"); mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); clock_t start_t = clock(); int n; cin >> n; V a(n); FORI(i,0,n){ cin >> a[i]; } sort(ALL(a), greater()); int ans = 1; FORI(i,0,n){ ans = max(ans, a[i] + i); } cout << ans; return 0; }