#include<iostream>
using namespace std;
int N;
int dp[110][2010];
int h[110];
int sum[110];
inline int max(int a,int b)
{ if(a>=b) return a; else return b;}
int cmp(const void*a,const void*b)
{ return *(int *)a - *(int *)b; }
void build_tower()
{
int i,j;
for(j=0;j<=sum[N];j++)
dp[1][j]=-1;
dp[1][h[1]]=0; dp[1][0]=0;
for(i=2;i<=N;i++)
{
for(j=0;j<=sum[i];j++)
{
if(j!=0) dp[i][j]=-1; else dp[i][0]=0;
if( dp[i-1][j]!=-1) dp[i][j]=dp[i-1][j];//不要少考虑这一步
if( j+h[i]<=sum[i-1] && dp[i-1][j+h[i]]!=-1)
dp[i][j]=max( dp[i-1][j+h[i]] + h[i] , dp[i][j]);
if(h[i]>=j && dp[i-1][h[i]-j]!=-1)
dp[i][j]=max( dp[i-1][h[i]-j]+(h[i]-j) , dp[i][j]);
if(j>=h[i] && dp[i-1][j-h[i]]!=-1)
dp[i][j]=max( dp[i-1][j-h[i]] , dp[i][j] );
}
for(j=sum[i]+1;j<=sum[N];j++)
dp[i][j]=-1;
}
int value=-1;
for(i=1;i<=N;i++)
value=max(value,dp[i][0]);
if(value>0)
cout<<value<<endl;
else cout<<"Sorry"<<endl;
}
int main()
{
int i;
cin>>N;
sum[0]=0;
while(N>0)
{
for(i=1;i<=N;i++)
cin>>h[i];
qsort(&h[1],N,sizeof(h[1]),cmp);
for(i=1;i<=N;i++)
sum[i]=sum[i-1]+h[i];
build_tower();
cin>>N;
}
return 0;
}