#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node;

typedef struct {
    Node *top;
} Stack;

// Initialize stack
void init(Stack *s) {
    s->top = NULL;
}

// Push element
void push(Stack *s, int val) {
    Node newNode = (Node)malloc(sizeof(Node));
    if (!newNode) {
        printf("Memory Error\n");
        exit(1);
    }
    newNode->data = val;
    newNode->next = s->top;
    s->top = newNode;
}

// Pop element
int pop(Stack *s) {
    if (s->top == NULL) {
        printf("Stack Underflow\n");
        exit(1);
    }
    Node *temp = s->top;
    int val = temp->data;
    s->top = temp->next;
    free(temp);
    return val;
}

// Peek element
int peek(Stack *s) {
    if (s->top == NULL) return -1;
    return s->top->data;
}

// Check if triangle is possible
int isTriangle(int a, int b, int c) {
    return (a + b > c) && (b + c > a) && (c + a > b);
}

int main() {
    int K;
    if (scanf("%d", &K) != 1 || K < 4 || K > 10) {
        printf("Invalid Input\n");
        return 0;
    }

    int nums[K];
    for (int i = 0; i < K; i++) {
        if (scanf("%d", &nums[i]) != 1 || nums[i] < 1 || nums[i] > 99) {
            printf("Invalid Input\n");
            return 0;
        }
    }

    Stack s;
    init(&s);

    // Push into stack
    for (int i = 0; i < K; i++) {
        push(&s, nums[i]);
    }

    int maxDrop = -1;

    // Brute force check all triplets
    for (int i = 0; i < K; i++) {
        for (int j = i + 1; j < K; j++) {
            for (int k = j + 1; k < K; k++) {
                if (isTriangle(nums[i], nums[j], nums[k])) {
                    int localMax = nums[i];
                    if (nums[j] > localMax) localMax = nums[j];
                    if (nums[k] > localMax) localMax = nums[k];
                    if (localMax > maxDrop)
                        maxDrop = localMax;
                }
            }
        }
    }

    printf("%d\n", maxDrop);

    return 0;
}