/**
感觉时间复杂度还是太高了,一开始自己写了个二分搜索。比STL里的要慢个几毫秒。可能是数据量太少了,体现不出来。
*/
#if 1
#include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
#define MY_MAX 1001
long dight[MY_MAX]={0};
int cmp(const void *a ,const void *b)
{
return *(long *)a - *(long *)b;
}
void solve(int n )
{
qsort(dight,n,sizeof(long),cmp);
for(int i = n -1; i >= 0 ; i-- )
{
for(int j = 0 ; j < n;j++)
{
long X = dight[ i ] - dight[j];
for(int k = 0 ; k < n;k++)
{
if (i == j || j == k || i == k) continue;
long x2 = X - dight[k];
if(x2 != dight[j] && x2!= dight[i]&& x2 != dight[k]&&binary_search(dight, dight + n, x2) ) {
printf("%ld\n",dight[i]);
return ;
}
}
}
}
printf("no solution\n");
return ;
}
int main()
{
int n;
long a,result;
while(scanf("%d",&n),n)
{
for(int i = 0 ;i < n;i++)scanf("%ld",&dight[i]);
solve(n);
}
return 0;
}
#endif