#include <iostream>
#include <iomanip>
#include <cstdio>
#include <queue>
#include <cstring>
#include <vector>
#include <map>
#include <algorithm>
#include <cctype>
#include <cmath>
#include <bitset>
#include <set>
#include <stack>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)(n);i++)
#define RREP(i,n) for(int i=n-1;i>=0;i--)
#define FOR(i,k,n) for(int i=(k);i<(int)(n);i++)
#define all(i,n) (i),(i+n)

int dx4[4]={1,0,-1,0};
int dy4[4]={0,-1,0,1};
int dx8[8]={1,0,-1,1,-1,1,0,-1};
int dy8[8]={1,1,1,0,0,-1,-1,-1};
int dx9[9]={0,1,0,-1,1,-1,1,0,-1};
int dy9[9]={0,1,1,1,0,0,-1,-1,-1};

typedef pair<int, int> P;
typedef pair<string, int> SP;
typedef long long ll;
typedef pair<ll, ll> PLL;

const int INF = 1e9;
const ll LLINF = 1e18;
const int MAX_V = 1e6+1;
const ll mod = 1000000007;
// << fixed << setprecision
// --------------------------------------
int n;
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  cin >> n;
  vector<ll> a(n);

  int c = 0;
  ll sum = 0;
  REP(i, n) {
    cin >> a[i];
    sum += abs(a[i]);
    if(a[i] < 0) c++;
  }

  if(c % 2 == 1) {
    ll mi = INF;
    REP(i, n)  {
      mi = min(abs(a[i]), mi);
    }
    sum -= (mi * 2);
  }

  cout << sum << endl;
}

#include<bits/stdc++.h>
using namespace std;

#define rep(i,n)  for(int i=0;i<n;++i)
#define sc1(a)  scanf("%d",&a)

int main(){
    bool f=0;
    int n;
    long long a,b=0ll,x=2e9;
    sc1(n);
    rep(i,n){
        scanf("%lld",&a);
        if (a<0) f=f^1;
        b+=abs(a);
        x=min(x,abs(a));
    }
    printf("%lld\n",f?b-x*2:b);
    return 0;
}
