#include<cstdlib>
#include<iostream>
#include<cstdio>
#include<cmath>
#include<set>
#include<cstring>
#include <algorithm>
#define M 5368
#define N 1000010
#define inf 0x7f7f7f7f
using namespace std;
int head[N],next[N];
int a[1000],sum[N],st[N][2];
int hash(int u)
{
// u=((u<<1)+(u>>1))/2;
// return (u & 0x7fffffff)%N;
if(a<0)
a=-a;
return a%N;
}
void insert(int k)
{
int h=hash(sum[k]);
next[k]=head[h];
head[h]=k;
}
int find(int x,int y,int s)
{
int h=hash(s);
h=head[h];//容易忘掉!!wa
while(h!=-1)
{
if(s==sum[h]&&st[h][0]!=x&&st[h][0]!=y&&st[h][1]!=x&&st[h][1]!=y)
return 1;
h=next[h];
}
return 0;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("ex.in","r",stdin);
#endif
int n;
while(scanf("%d",&n))
{
memset(head,-1,sizeof(head));
if(!n)
break;
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
sort(a,a+n);
int k=0;
for(int i=0; i<n; i++)
for(int j=i+1; j<n; j++)//降为o(n^2)
{
sum[k]=a[i]+a[j];
insert(k);
st[k][0]=i;
st[k++][1]=j;
}
int flag=1;
for(int i=n-1; i>=0; i--)
{
for(int j=0; j<n; j++)
if(i==j)
continue;
else if(find(i,j,a[i]-a[j]))
{
flag=0;
printf("%d\n",a[i]);
break;
}
if(!flag)
break;
}
if(flag)
printf("no solution\n");
}
return 0;
}