//3sum问题
#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <queue> #include <algorithm> #include <vector> #include <cstring> #include <stack> #include <cctype> #include <utility> #include <map> #include <string> #include <climits> #include <set> #include <string> #include <sstream> #include <utility> #include <ctime> using std::priority_queue; using std::vector; using std::swap; using std::stack; using std::sort; using std::max; using std::min; using std::pair; using std::map; using std::string; using std::cin; using std::cout; using std::set; using std::queue; using std::string; using std::istringstream; using std::make_pair; using std::greater; const int MAXN(1010); int arr[MAXN]; int main() { int n; while(scanf("%d", &n), n) { for(int i = 1; i <= n; ++i) scanf("%d", arr+i); sort(arr+1, arr+1+n); int count = 0; for(int i = 1; i <= n; ++i) if(i == 1 || arr[i] != arr[i-1]) arr[++count] = arr[i]; int ans; try { int tn = n-2; for(int i = n; i >= 1; --i) { ans = arr[i]; for(int j = 1; j <= tn; ++j) if(j != i) { int l = j+1, r = n; while(l < r) { if(l == i) { ++l; continue; } if(r == i) { --r; continue; } int temp = arr[j]+arr[l]+arr[r]; if(temp == ans) throw true; if(temp > ans) --r; else ++l; } } } printf("no solution\n"); } catch(bool) { printf("%d\n", ans); } } return 0; }