#include<bits/stdc++.h>
using namespace std;
set <string> S;
int A[20],n,k, B[20];
int C[7][4]={{0,0,0,0},{0,1,2,3},{0,1,3,2},{0,2,1,3},{0,2,3,1},{0,3,1,2},{0,3,2,1}};
int f(int a, int b, int c, int d){
	int s = 0;
	if(d==n+1){
		return abs(a-b)+ abs(a-c)+abs(b-c);
	}
	s = f(a+A[d],b,c,d+1);
	s = min(s,min(f(a,b+A[d],c,d+1),f(a,b,c+A[d],d+1)));
	return s;
}
void ff(int a, int b, int c, int d, int e){
	int s = 0,i,j;
	string ss[7];
	char sss;
	if(d==n+1){
		if(abs(a-b)+abs(a-c)+abs(b-c)==e){
			for(i=1;i<7;i++){
				for(j=1;j<=n;j++){
					sss = 'a'+ (C[i][B[j]]%3);
					ss[i]=ss[i]+sss;
				}
			}
			if(S.count(ss[1])==0){
				k++;
				for(i=1;i<7;i++) S.insert(ss[i]);
			}
			
		}
		return;
	}
	
	B[d]=1;	
	ff(a+A[d],b,c,d+1,e);
	B[d]=2;
	ff(a,b+A[d],c,d+1,e);
	B[d]=3;
	ff(a,b,c+A[d],d+1,e);
	B[d]=0;	
	return ;
}

int main(){
	int i, t;
	cin >> n;
	for(i=1;i<=n;i++) cin >> A[i];
	t = f(0, 0, 0, 1);
	cout << t << endl;
	ff(0, 0, 0, 1, t);
	cout << k;
	
}
