#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
int n;
int a[N];
int dif;
int main()
{
cin >> n;
int ans1 = 0, ans2 = 0;
// 操作[l,r],若+1即b[l]+1,b[r+1]-1,若-1即b[l]-1,b[r+1]+1
// 即差分后,每一次操作只影响l和r+1(只影响两个数)
// 所以每一次操作,会是一个正数和一个负数相互抵消
// 即此题变为:有一个数组,每次使一个数-1,一个数+1。如果最后所有数都为0,求最少操作次数
// 所以求差分后:max(正数总和,负数总和)即可
cin >> a[0];
for (int i = 1; i < n; i++)
{
cin >> a[i];
dif = a[i] - a[i - 1]; // 差分,若=0,则工资相等
if (dif > 0)
ans1 += dif;
else
ans2 += dif;
}
cout << max(ans1, -ans2);
return 0;
}