#include using namespace std; int main(){ int N; cin >> N; vector H(N); for(int i=0;i> H[i]; sort(H.begin(),H.end()); cout << *ranges::partition_point( views::iota(N,N+61),[&](int x){ priority_queue A(H.begin(),H.begin()+min((N+60-x),N)); for(int i=min(x-1,59);i>=0 && !A.empty();i--){ long long pos=A.top(); A.pop(); if(pos>=(1LL<=(1LL<