#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <functional>

using namespace std; 

typedef unsigned long long ull;

/*bool solve(ull a,ull b, ull c){
	if(( (a+b) > c)&&( (b+c) > a)&&( (c+a) > b )){return true;}
	return false;
}
*/

bool tri(ull x, ull y, ull z, ull d, ull e, ull f){

	ull b[6] = {x,y,z,d,e,f};
	ull p[6];

	p[0]=b[0]; p[1]=b[1]; p[2]=b[2]; p[3]=b[3]; p[4]=b[4]; p[5]=b[5];
	if((((p[0]+p[1])>p[2])&&((p[2]+p[0])>p[1])&&((p[1]+p[2])>p[0]))&& (((p[3]+p[4])>p[5])&&((p[4]+p[5])>p[3])&&((p[3]+p[5])>p[4] )) ){return true;}

//	p[0]=b[0]; p[1]=b[1]; p[2]=b[3]; p[3]=b[2]; p[4]=b[4]; p[5]=b[5];
	if((((p[0]+p[1])>p[3])&&((p[3]+p[0])>p[1])&&((p[1]+p[3])>p[0]))&& (((p[2]+p[4])>p[5])&&((p[4]+p[5])>p[2])&&((p[2]+p[5])>p[4] )) ){return true;}

//	p[0]=b[0]; p[1]=b[1]; p[2]=b[4]; p[3]=b[3]; p[4]=b[2]; p[5]=b[5];
	if((((p[0]+p[1])>p[4])&&((p[4]+p[0])>p[1])&&((p[1]+p[4])>p[0]))&& (((p[3]+p[2])>p[5])&&((p[2]+p[5])>p[3])&&((p[3]+p[5])>p[2] )) ){return true;}

//	p[0]=b[0]; p[1]=b[1]; p[2]=b[5]; p[3]=b[3]; p[4]=b[4]; p[5]=b[2];
	if((((p[0]+p[1])>p[5])&&((p[5]+p[0])>p[1])&&((p[1]+p[5])>p[0]))&& (((p[3]+p[4])>p[2])&&((p[4]+p[2])>p[3])&&((p[3]+p[2])>p[4] )) ){return true;}

//	p[0]=b[0]; p[1]=b[2]; p[2]=b[3]; p[3]=b[1]; p[4]=b[4]; p[5]=b[5];
	if((((p[0]+p[3])>p[2])&&((p[2]+p[0])>p[3])&&((p[3]+p[2])>p[0]))&& (((p[1]+p[4])>p[5])&&((p[4]+p[5])>p[1])&&((p[1]+p[5])>p[4] )) ){return true;}

//	p[0]=b[0]; p[1]=b[2]; p[2]=b[4]; p[3]=b[1]; p[4]=b[3]; p[5]=b[5];
	if((((p[0]+p[4])>p[2])&&((p[2]+p[0])>p[4])&&((p[4]+p[2])>p[0]))&& (((p[3]+p[1])>p[5])&&((p[1]+p[5])>p[3])&&((p[3]+p[5])>p[1] )) ){return true;}

//	p[0]=b[0]; p[1]=b[2]; p[2]=b[5]; p[3]=b[1]; p[4]=b[4]; p[5]=b[3];
	if((((p[0]+p[5])>p[2])&&((p[2]+p[0])>p[5])&&((p[5]+p[2])>p[0]))&& (((p[3]+p[4])>p[1])&&((p[4]+p[1])>p[3])&&((p[3]+p[1])>p[4] )) ){return true;}

//	p[0]=b[0]; p[1]=b[3]; p[2]=b[4]; p[3]=b[1]; p[4]=b[2]; p[5]=b[5];
	if((((p[0]+p[3])>p[4])&&((p[4]+p[0])>p[3])&&((p[3]+p[4])>p[0]))&& (((p[1]+p[2])>p[5])&&((p[1]+p[5])>p[2])&&((p[2]+p[5])>p[1] )) ){return true;}

//	p[0]=b[0]; p[1]=b[3]; p[2]=b[5]; p[3]=b[1]; p[4]=b[2]; p[5]=b[4];
	if((((p[0]+p[3])>p[5])&&((p[5]+p[0])>p[3])&&((p[3]+p[5])>p[0]))&& (((p[1]+p[2])>p[4])&&((p[1]+p[4])>p[2])&&((p[2]+p[4])>p[1] )) ){return true;}

//	p[0]=b[0]; p[1]=b[4]; p[2]=b[5]; p[3]=b[1]; p[4]=b[2]; p[5]=b[3];
	if((((p[0]+p[4])>p[5])&&((p[5]+p[0])>p[4])&&((p[4]+p[5])>p[0]))&& (((p[1]+p[2])>p[3])&&((p[1]+p[3])>p[2])&&((p[2]+p[3])>p[1] )) ){return true;}

	return false;
}

int main()
{
	int N;

	cin >> N;
	ull* bar = new ull[N];

	bool count = false;
	ull ans=0;

	for(int i=0; i<N; i++){ cin >> bar[i];}

	sort(bar, bar+N, greater<ull>());
/*
		for(int i=0; i<N-5; i++){
			for(int j=i+1; j<N-4; j++){
				for(int k=j+1; k<N-3; k++){
					for(int l=k+1; l<N-2; l++){
						for(int m=l+1; m<N-1; m++){
							for(int n=m+1; n<N; n++){
								if( tri(bar[i],bar[j],bar[k],bar[l],bar[m],bar[n]) ){
									ans = ans + bar[i]+bar[j]+bar[k]+ bar[l]+bar[m]+bar[n];
//cout << bar[i] << " " << bar[j] << " " << bar[k] << endl;
									cout << ans << endl;
									delete[] bar;
									return 0;
								}
							}
						}
					}
				}
			}
		}
*/

		for(int i=0; i<N-5; i++){
			for(int j=i+3; j<N-2; j++){
				if( tri(bar[i],bar[i+1],bar[i+2],bar[j],bar[j+1],bar[j+2]) ){
					ans = ans + bar[i]+bar[i+1]+bar[i+2]+ bar[j]+bar[j+1]+bar[j+2];
//cout << bar[i] << " " << bar[j] << " " << bar[k] << endl;
					cout << ans << endl;
					delete[] bar;
					return 0;
				}
			}
		}



	delete[] bar;	
	cout << "0" << endl;

	return 0;
}

//cout<<endl;for(int i=0; i<N; i++){ cout << bar[i] << " ";}cout<<endl;

/*
	for(int i=0; i<N; i++){
		if(count){break;}
		for(int j=i+1; j<N; j++){
			if(count){break;}
			for(int k=j+1; k<N; k++){
				if(bar[i] - bar[j] > bar[k]){break;}
				else if( solve(bar[i],bar[j],bar[k]) ){
					ans = ans + bar[i]+bar[j]+bar[k];
//cout << bar[i] << " " << bar[j] << " " << bar[k] << endl;
					bar[i]=0ULL;
					bar[j]=0ULL;
					bar[k]=0ULL;
					sort(bar, bar+N, greater<ull>());
					count = true;
					break;
				}
			}
		}
	}

//cout<<endl;for(int i=0; i<N; i++){ cout << bar[i] << " ";}cout<<endl;

	if(count){
		for(int i=0; i<N-3; i++){
			for(int j=i+1; j<N-3; j++){
			for(int k=j+1; k<N-3; k++){
					if(bar[i] - bar[j] > bar[k]){break;}
					else if( solve(bar[i],bar[j],bar[k]) ){
						ans = ans + bar[i]+bar[j]+bar[k];
//cout << bar[i] << " " << bar[j] << " " << bar[k] << endl;
						cout << ans << endl;
						delete[] bar;
						return 0;
					}
				}
			}
		}
	}


//cout<<endl;for(int i=0; i<N; i++){ cout << bar[i] << " ";}cout<<endl;
*/

Measured memory_bytes: 1800