'use strict'

function main(input) {
  input = input.split('\n')
  const n = ~~input[0]
  const h = input[1].split(/\s/).map(v => ~~v)

  let cnt = 0
  let stack = [h]

  //0. 配列をstackにつむ、
  //1 .stack から取り出し　すべての要素が　1 以上なら
  //  - 1してstackに戻す
  //  cnt++ > 1へ
  //2. 0があったらそこを基準に分割
  //3.分割したものをまたstackに積む
  //4.繰り返す > 1へ

  while (true) {
    if (stack.length > 0) {
      let tmp = stack.shift()
      // console.log(tmp)
      //全ての値が1以上だったら
      if (tmp.every(v => v > 0)) {
        stack.push(tmp.map(v => v - 1))
        cnt++
      } else {
        let p = tmp.indexOf(0)
        if (p > 0) stack.push(tmp.slice(0, p))
        if (p + 1 < tmp.length) stack.push(tmp.slice(p + 1, tmp.length))
      }
    } else {
      console.log(cnt)
      return
    }
  }
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'))
