#include <bits/stdc++.h>   using namespace std;   map<long long, int> mark;   int32_t main() {     int n;     scanf( %d , &n);     set<long long> s;     for (int i = 0; i < n; i++) {       int x;       scanf( %d , &x);       mark[x]++;       s.insert(x);     }     int p = 0;     long long MX = 0;     while (s.size()) {       long long u = *s.begin();       ((MX) = max((MX), (u)));       mark[u + 1] += mark[u] / 2;       if (mark[u + 1]) s.insert(u + 1);       if (mark[u] % 2) p--;       s.erase(s.begin());     }     return cout << MX + p + 1 << endl, 0;   }   