#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
template<typename T>
void maximize(T& a, const T& b) {
if (a < b) a = b;
}
const int N = 3e2 + 5;
int n;
int a[N];
int number_of_subtask() {
if (n <= 10) return 1;
return 2;
}
namespace sub1 {
int ans;
bool removed[11];
void backtrack(int step) {
if (step == n) return;
for (int i = 1; i + 1 <= n; i++) {
if (removed[i]) continue;
for (int j = i + 1; j <= n; j++) {
if (!removed[j]) {
if (a[i] == a[j]) {
a[i] += 2;
removed[j] = true;
maximize(ans, a[i]);
backtrack(step + 1);
removed[j] = false;
a[i] -= 2;
}
break;
}
}
}
}
void solve() {
ans = 0;
for (int i = 1; i <= n; i++) maximize(ans, a[i]);
backtrack(0);
cout << ans << '\n';
}
}
namespace sub2 {
// dp(l, r) = Giá trị thu được khi gộp đoạn [l, r] của mảng a về thành 1 phần tử
// Fact: Lý do không có từ "lớn nhất" trong lời gọi dp là vì
// nếu có nhiều cách gộp đoạn [l, r] về thành 1 phần tử thì giá trị thu được sau cùng là như nhau cho mọi cách
int memo[N][N];
int dp(int l, int r) {
if (l == r) return a[l];
int& ans = memo[l][r];
if (ans != -1) return ans;
ans = 0;
for (int k = l; k < r; k++) {
int u = dp(l, k), v = dp(k + 1, r);
if (u == v && u != 0) ans = u + 2;
}
return ans;
}
void solve() {
memset(memo, -1, sizeof memo);
int ans = 0;
for (int l = 1; l <= n; l++) {
for (int r = l; r <= n; r++) {
maximize(ans, dp(l, r));
}
}
cout << ans << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
int subtask = number_of_subtask();
if (subtask == 1) sub1::solve();
if (subtask == 2) sub2::solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBtYXhpbWl6ZShUJiBhLCBjb25zdCBUJiBiKSB7CglpZiAoYSA8IGIpIGEgPSBiOyAgCn0KCmNvbnN0IGludCBOID0gM2UyICsgNTsgCgppbnQgbjsgCmludCBhW05dOyAKCmludCBudW1iZXJfb2Zfc3VidGFzaygpIHsKCWlmIChuIDw9IDEwKSByZXR1cm4gMTsgCglyZXR1cm4gMjsgCn0KCm5hbWVzcGFjZSBzdWIxIHsKCWludCBhbnM7ICAKCglib29sIHJlbW92ZWRbMTFdOyAgCgoJdm9pZCBiYWNrdHJhY2soaW50IHN0ZXApIHsKCQlpZiAoc3RlcCA9PSBuKSByZXR1cm47ICAgCgoJCWZvciAoaW50IGkgPSAxOyBpICsgMSA8PSBuOyBpKyspIHsKCQkJaWYgKHJlbW92ZWRbaV0pIGNvbnRpbnVlOyAKCQkJZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IG47IGorKykgewoJCQkJaWYgKCFyZW1vdmVkW2pdKSB7CgkJCQkJaWYgKGFbaV0gPT0gYVtqXSkgewoJCQkJCQlhW2ldICs9IDI7ICAKCQkJCQkJcmVtb3ZlZFtqXSA9IHRydWU7CgkJCQkJCW1heGltaXplKGFucywgYVtpXSk7ICAgCgkJCQkJCWJhY2t0cmFjayhzdGVwICsgMSk7IAoJCQkJCQlyZW1vdmVkW2pdID0gZmFsc2U7IAoJCQkJCQlhW2ldIC09IDI7IAoJCQkJCX0KCQkJCQlicmVhazsgCgkJCQl9CgkJCX0KCQl9Cgl9CgoJdm9pZCBzb2x2ZSgpIHsKCQlhbnMgPSAwOyAgCgkJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBtYXhpbWl6ZShhbnMsIGFbaV0pOyAKCQliYWNrdHJhY2soMCk7CgkJY291dCA8PCBhbnMgPDwgJ1xuJzsgIAoJfQp9CgpuYW1lc3BhY2Ugc3ViMiB7CgkvLyBkcChsLCByKSA9IEdpw6EgdHLhu4sgdGh1IMSRxrDhu6NjIGtoaSBn4buZcCDEkW/huqFuIFtsLCByXSBj4bunYSBt4bqjbmcgYSB24buBIHRow6BuaCAxIHBo4bqnbiB04butCgkvLyBGYWN0OiBMw70gZG8ga2jDtG5nIGPDsyB04burICJs4bubbiBuaOG6pXQiIHRyb25nIGzhu51pIGfhu41pIGRwIGzDoCB2w6wKCS8vICAgICAgIG7hur91IGPDsyBuaGnhu4F1IGPDoWNoIGfhu5lwIMSRb+G6oW4gW2wsIHJdIHbhu4EgdGjDoG5oIDEgcGjhuqduIHThu60gdGjDrCBnacOhIHRy4buLIHRodSDEkcaw4bujYyBzYXUgY8O5bmcgbMOgIG5oxrAgbmhhdSBjaG8gbeG7jWkgY8OhY2ggCglpbnQgbWVtb1tOXVtOXTsgCgoJaW50IGRwKGludCBsLCBpbnQgcikgewoJCWlmIChsID09IHIpIHJldHVybiBhW2xdOyAKCgkJaW50JiBhbnMgPSBtZW1vW2xdW3JdOwoJCWlmIChhbnMgIT0gLTEpIHJldHVybiBhbnM7IAoKCQlhbnMgPSAwOyAKCQlmb3IgKGludCBrID0gbDsgayA8IHI7IGsrKykgewoJCQlpbnQgdSA9IGRwKGwsIGspLCB2ID0gZHAoayArIDEsIHIpOyAKCQkJaWYgKHUgPT0gdiAmJiB1ICE9IDApIGFucyA9IHUgKyAyOyAKCQl9CgoJCXJldHVybiBhbnM7IAoJfQoKCXZvaWQgc29sdmUoKSB7CgkJbWVtc2V0KG1lbW8sIC0xLCBzaXplb2YgbWVtbyk7IAoJCgkJaW50IGFucyA9IDA7IAoJCWZvciAoaW50IGwgPSAxOyBsIDw9IG47IGwrKykgewoJCQlmb3IgKGludCByID0gbDsgciA8PSBuOyByKyspIHsKCQkJCW1heGltaXplKGFucywgZHAobCwgcikpOyAKCQkJfQoJCX0KCgkJY291dCA8PCBhbnMgPDwgJ1xuJzsgCgl9Cn0KCgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbjsgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOyAKCglpbnQgc3VidGFzayA9IG51bWJlcl9vZl9zdWJ0YXNrKCk7IAoKCWlmIChzdWJ0YXNrID09IDEpIHN1YjE6OnNvbHZlKCk7IAoJaWYgKHN1YnRhc2sgPT0gMikgc3ViMjo6c29sdmUoKTsgICAKfQ==