#include <iostream>
using namespace std;
//Author: Daniel "3ICE" Berezvai

int main(){
	int a, b, n;

	cin >> n;

	int* A = new int[n];
	for (int i = 0; i < n; i++)
		cin >> A[i];

	int** opt = new int*[n];
	for (int i = 0; i < n; i++)
		opt[i] = new int[n];

	int** best = new int*[n];
	for (int i = 0; i < n; i++)
		best[i] = new int[n];

	for (int i = 0; i + 1 < n; i++){
		if (A[i] < A[i + 1]){
			opt[i][i + 1] = A[i + 1];
			best[i][i + 1] = i + 1;
		}
		else{
			opt[i][i + 1] = A[i];
			best[i][i + 1] = i;
		}
	}

	for (int d = 3; d < n; d += 2){
		for (int i = 0; i + d < n; i++){
			if (A[i + 1] < A[i + d])
				a = A[i] + opt[i + 1][i + d - 1];
			else
				a = A[i] + opt[i + 2][i + d];

			if (A[i] < A[i + d - 1])
				b = A[i + d] + opt[i][i + d - 2];
			else
				b = A[i + d] + opt[i + 1][i + d - 1];

			if (a < b)
				opt[i][i + d] = b, best[i][i + d] = i + d;
			else
				opt[i][i + d] = a, best[i][i + d] = i;
		}
	}

	cout << opt[0][n - 1] << endl;
	int left = 0;
	int right = n - 1;
	for (int i = 0; i < n; i += 2){
		if (best[left][right] == left){
			left++;
			cout << "B";
		}
		else{
			right--;
			cout << "J";
		}

		if (A[left] < A[right]){
			right--;
		}
		else{
			left++;
		}
	}
	return 0;
}

