import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] prices = new int[n];
        for (int i = 0; i < n; i++) prices[i] = in.nextInt();

        if (n == 0) {
            System.out.println(0);
            return;
        }

        int[] lastState = new int[5];
        lastState[0] = 0;
        lastState[1] = -prices[0];      // 第一次买入
        lastState[2] = 0;               // 第一次卖出
        lastState[3] = -prices[0];      // 第二次买入(买入之后可以持有)
        lastState[4] = 0;               // 第二次卖出

        for (int i = 1; i < n; i++) {
            lastState[0] = lastState[0];                              // 什么都不做
            lastState[1] = Math.max(lastState[1],
                                    lastState[0] - prices[i]);  // 第一次买入
            lastState[2] = Math.max(lastState[2],
                                    lastState[1] + prices[i]);  // 第一次卖出
            lastState[3] = Math.max(lastState[3],
                                    lastState[2] - prices[i]);  // 第二次买入
            lastState[4] = Math.max(lastState[4],
                                    lastState[3] + prices[i]);  // 第二次卖出
        }

        System.out.println(Math.max(lastState[2],
                                    lastState[4])); // 最多两次卖出后的最大收益
    }
}