// Solve the game

#include <stdio.h>
#include <stdlib.h>

void printA(int a[], int n){
    int i;
    for(i=0;i<n;i++){
        printf("%d ",a[i]);
    }
    printf("\n");
}

void swap(int* a, int* b){
    int  tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}

//ゲーム結果を出力する関数
void solve(int a[], int n){
	//ここを書き換える
	for(int i=0; i<n-1; i++){
		for(int j=1; j<n-i; j++){
			if(a[j]>a[j-1]){
				swap(&a[j],&a[j-1]);
			}
		}
	}
	int A=0,B=0;    //Aさん、Bさん
	//バブルソートで大きい順に並べかえる
	for(int i=0; i<n; i++){
		static int count=0;
		if(count%2==0){
			A +=a[i];
		}
		else B +=a[i];
		count ++;
	}
	printf("A = ");
	for(int i=0; i<n; i++){
		static int count=0;
		if(count%2==0){
      if(count!=0) printf("+");  // +を数字の前に、i!=0→count!=0
      printf("%d", a[i]);
  }
		count ++;
	}
	printf(" = %d\n" ,A);
	
	printf("B = ");
	
	for(int i=0; i<n; i++){
		static int count=0;
		if(count%2!=0){
      if(count!=1) printf("+");  // Bの最初はcount=1
      printf("%d", a[i]);
  }
		count ++;
	}
	printf(" = %d\n" ,B);
}

int main(void){
    int n,i;
    int *v;
    scanf("%d",&n);
    v = (int*)malloc(sizeof(int)*n);
    if(v==NULL){
        printf("ERROR\n");
        return -1;
    }
    for(i=0;i<n;i++){
        scanf("%d",&v[i]);
    }
    solve(v,n);
    free(v);
    return 0;
}