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])); // 最多两次卖出后的最大收益
}
}