n = int(input()) A = list(map(int, input().split())) flag = True for i in range(n - 1): if A[i] < A[i + 1]: flag = False break if flag: print(-1) exit() flag = True for i in range(n - 1): if A[i] > A[i + 1]: flag = False break if flag: print(-1) exit() Lmin = [A[0] for _ in range(n)] Rmin = [A[-1] for _ in range(n)] for i in range(1, n): Lmin[i] = min(Lmin[i - 1], A[i]) for i in range(n - 2, 0, -1): Rmin[i] = min(Rmin[i + 1], A[i]) ans = 1 << 60 for i in range(1, n - 1): if Lmin[i - 1] < A[i] > Rmin[i + 1] or Lmin[i - 1] > A[i] < Rmin[i + 1]: ans = min(ans, Lmin[i - 1] + A[i] + Rmin[i + 1]) print(ans)