#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  int ar[n];
  int min = INT_MAX;
  int flag = 0;
  int count = 0;
  for (int i = 0; i < n; i++) {
    cin >> ar[i];
    if (ar[i] < min) min = ar[i];
    if (i < n - 1) {
      if (ar[i] == 0 && ar[i + 1] == 0) flag = 1;
    }
    if (ar[0] == 0 || ar[n - 1] == 0) flag = 1;
  }
  while (!flag) {
    int min2 = INT_MAX;
    for (int i = 0; i < n; i++) {
      if (ar[i] != 0) ar[i] = ar[i] - min;
      if (ar[i] < min2 && ar[i] != 0) min2 = ar[i];
      if (i > 0) {
        if (ar[i] == 0 && ar[i - 1] == 0) {
          flag = 1;
        }
      }
      if (ar[0] == 0 || ar[n - 1] == 0) {
        flag = 1;
      }
    }
    count += min;
    min = min2;
  }
  cout << count << endl;
  return 0;
}
