#include using ll = long long; using namespace std; int main() { int n; scanf("%d", &n); vector v(n); for (int i = 0; i < n; ++i) scanf("%d", &v[i]); vector v2(v),v3(n); sort(v2.begin(), v2.end()); reverse_copy(v2.begin(),v2.end(),v3.begin()); if (v == v2 || v == v3) { printf("-1\n"); return 0; } constexpr int maxa = 300000001; vector lmin(n + 1), rmin(n + 1); lmin[0] = maxa; rmin[n] = maxa; for (int i = 0; i < n; ++i) { lmin[i + 1] = min(lmin[i], v[i]); rmin[n - i - 1] = min(rmin[n - i], v[n - i - 1]); } int mint{ maxa }; for (int i = 1; i < n; ++i) { if (v[i] > lmin[i] && v[i] > rmin[i + 1]) mint = min(mint, lmin[i] + v[i] + rmin[i + 1]); if (v[i] < lmin[i] && v[i] < rmin[i + 1]) mint = min(mint, lmin[i] + v[i] + rmin[i + 1]); } if (mint != maxa) printf("%d\n", mint); else printf("-1\n"); return 0; }