Roma works in a company that sells TVs. Now he has to prepare a report for the last year.

Roma has got a list of the company's incomes. The list is a sequence that consists of *n* integers. The total income of the company is the sum of all integers in sequence. Roma decided to perform exactly *k* changes of signs of several numbers in the sequence. He can also change the sign of a number one, two or more times.

The operation of changing a number's sign is the operation of multiplying this number by -1.

Help Roma perform the changes so as to make the total income of the company (the sum of numbers in the resulting sequence) maximum. Note that Roma should perform exactly *k* changes.
The first line contains two integers *n* and *k* (1 ≤ *n*, *k* ≤ 10<sup class="upper-index">5</sup>), showing, how many numbers are in the sequence and how many swaps are to be made.

The second line contains a non-decreasing sequence, consisting of *n* integers *a*<sub class="lower-index">*i*</sub> (|*a*<sub class="lower-index">*i*</sub>| ≤ 10<sup class="upper-index">4</sup>).

The numbers in the lines are separated by single spaces. Please note that the given sequence is sorted in non-decreasing order.
#include <cstdio>
#include <algorithm>
using namespace std;
 
const int Sn = 100010;
 
int n, k, A[Sn], tA, B[Sn], tB;
 
int main()
{
#ifndef ONLINE_JUDGE
     freopen("cf.in" , "r", stdin);
     freopen("cf.out", "w", stdout);
#endif
     scanf("%d%d", &n, &k);
     for (int i = 1, x; i <= n; i ++) {
	  scanf("%d", &x);
	  if (x >= 0) A[++tA] = x;
	  else B[++tB] = x;
     }
     sort(A + 1, A + tA + 1);
     sort(B + 1, B + tB + 1);
     
     int qB = 1;
     while (k > 0 && qB <= tB)
	  B[qB++] *= -1, k --;
 
     if (k) {
	  if (!tB || (tA && B[tB] > A[1])) {
	       while (k > 0)
		    A[1] *= -1, k --;
	  }
	  else {
	       while (k > 0)
		    B[tB] *= -1, k --;
	  }
     }
 
     int sum = 0;
     for (int i = 1; i <= tA; i ++)
	  sum += A[i];
     for (int i = 1; i <= tB; i ++)
	  sum += B[i];
     printf("%d\n", sum);
}
