#include <bits/stdc++.h>
using namespace std;
int A[30] ,n;
map <int, int> M;
void f(int a, int b){
	if(a==n+1){
		M[b]++;
		cout <<b <<" ";
		return;
	}
	f(a+1, b+A[a]);
	f(a+1, b);
	return ;
}
int main(){
	long long int a, b,i;
	cin >> n;
	for(i=1;i<=n;i++)cin >> A[i];
	f(1,0);
	a = 0;
	b = 0;
	cout <<endl;
	for(auto x:M){
		//if(x.second>a){
			a = x.second;
			b = x.first;
			cout << a<<" "<<b <<endl;
		//}
	}
	cout<< a <<"\n";
	for(auto x : M) {
		if(a == x.second) cout << x.first <<" ";
	}
}
