#include <bits/stdc++.h>
using namespace std;
const long long N = 2e5 + 7;
int t, n;
long long a[N];
long long dp[N][3][2][2];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
  if (n == 1) {
    printf("%lld\n", a[1]);
    return 0;
  }
  memset(dp, -0x3f, sizeof(dp));
  dp[1][2][0][0] = -a[1], dp[1][1][0][1] = a[1];
  for (int i = 1; i < n; i++) {
    for (int j = 0; j < 3; j++) {
      dp[i + 1][(j + 2) % 3][0][0] =
          max(dp[i + 1][(j + 2) % 3][0][0], dp[i][j][0][1] - a[i + 1]);
      dp[i + 1][(j + 2) % 3][1][0] = max(
          dp[i + 1][(j + 2) % 3][1][0],
          max(dp[i][j][0][0], max(dp[i][j][1][0], dp[i][j][1][1])) - a[i + 1]);
      dp[i + 1][(j + 1) % 3][0][1] =
          max(dp[i + 1][(j + 1) % 3][0][1], dp[i][j][0][0] + a[i + 1]);
      dp[i + 1][(j + 1) % 3][1][1] = max(
          dp[i + 1][(j + 1) % 3][1][1],
          max(dp[i][j][0][1], max(dp[i][j][1][0], dp[i][j][1][1])) + a[i + 1]);
    }
  }
  printf("%lld\n", max(dp[n][1][1][0], dp[n][1][1][1]));
  return 0;
}
