using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace Program
{
    interface Output
    {
        void Write(object str);
        void WriteLine(object str);
    }

    interface Input
    {
        int NextInt();
        string NextString();
    }

    class Console_ : Input, Output
    {
        Queue<string> param = new Queue<string>();
        int Input.NextInt()
        {
            if (param.Count == 0)
            {
                foreach (var item in Console.ReadLine().Split(' '))
                {
                    param.Enqueue(item);
                }
            }
            return int.Parse(param.Dequeue());
        }
        string Input.NextString()
        {
            if (param.Count == 0)
            {
                foreach (var item in Console.ReadLine().Split(' '))
                {
                    param.Enqueue(item);
                }
            }
            return param.Dequeue();
        }
        void Output.Write(object str) => System.Console.Write(str.ToString());
        void Output.WriteLine(object str) => System.Console.WriteLine(str.ToString());
    }

    class Debug_ : Input, Output
    {
        int i = 0;
        StringBuilder sb = new StringBuilder();
        public object[] data;
        public string result
        {
            get
            {
                return sb.ToString();
            }
            private set { }
        }
        int Input.NextInt() => (int)data[i++];
        string Input.NextString() => (string)data[i++];

        public void Write(object str) => sb.Append(str.ToString());

        public void WriteLine(object str) => sb.AppendLine(str.ToString());
    }

    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0 && args[0] == "debug")
            {
                try
                {
                    Action<string, object[], string[]> test = (name, input, output) =>
                    {

                        var debug = new Debug_();
                        debug.data = input;
                        new Solver(debug, debug).Run();
                        var res = debug.result.Split("\r\n".ToArray()).ToArray();
                        for (int i = 0; i < res.Length; ++i)
                        {
                            if (i >= output.Length)
                            {
                                if (res[i].Trim() != "")
                                {
                                    Console.WriteLine("failed: " + name);
                                    return;
                                }
                            }
                            else
                            {
                                if (res[i] != output[i])
                                {
                                    Console.WriteLine("failed: " + name);
                                    return;
                                }
                            }
                        }
                        return;
                    };

                    test("case1",
                         new object[] { 3,
-10, 5, -4
 },
                         new string[] { "19" });
                    test("case2",
                         new object[] { 5,
10, -4, -8, -11, 3
 },
                         new string[] { "30" });
                    test("case3",
                         new object[] { 11,
-1000000000, 1000000000, -1000000000, 1000000000, -1000000000, 0, 1000000000, -1000000000, 1000000000, -1000000000, 1000000000,

 },
                         new string[] { "10000000000" });
                }
                finally
                {
                    Console.WriteLine("end");
                    Console.ReadLine();
                }
            }
            else
            {
                new Solver(new Console_(), new Console_()).Run();
            }
        }
    }

    class Solver
    {
        Input input;
        Output output;
        public Solver(Input input, Output output)
        {
            this.input = input;
            this.output = output;
        }

        public void Run()
        {
            var N = input.NextInt();
            long sum = 0;
            long mini = 10000000000;
            bool odd = false;
            for (int i = 0; i < N; ++i)
            {
                var A = input.NextInt();
                if (A < 0) odd = !odd;
                var absA = Math.Abs(A);
                if (absA < mini) mini = absA;
                sum += absA;
            }

            output.WriteLine(odd ? sum - mini * 2 : sum);
        }

        int gcd(int a, int b)
        {
            if (b == 0) return a;
            return gcd(b, a % b);
        }
    }
}


Measured memory_bytes: 30556