#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define mod 20121014
int a[10];
int judge(int n)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i==j)
continue;
for(int k=1;k<=n;k++)
{
if(k==i||k==j)
continue;
if((a[i]+a[j]+a[k])%1024==0)
return 1;
}
}
}
return 0;
}
int get(int x)
{
if(x==0)
return 0;
if(x%1024==0)
return 1024;
return x%1024;
}
int get(int x,int y)
{
if(x+y==0)
return 0;
if((x+y)%1024==0)
return 1024;
return (x+y)%1024;
}
int main()
{
int n;
while(cin>>n)
{
memset(a,0,sizeof(a));
int sum=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
if(n<=3)
{
cout<<"1024"<<endl;
continue;
}
if(n==4)
{
if(judge(4))
cout<<"1024"<<endl;
else
{
int ans=0;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
if(i==j)
continue;
ans=max(ans,get(a[i],a[j]));
}
}
cout<<ans%mod<<endl;
}
continue;
}
if(n==5)
{
int ans=0;
if(judge(5)==0)
cout<<"0"<<endl;
else
{
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
{
if(i==j)
continue;
for(int k=1;k<=5;k++)
{
if(k==i||k==j)
continue;
if((a[i]+a[j]+a[k])%1024==0)
{
ans=max(ans,get(sum-a[i]-a[j]-a[k]));
}
}
}
}
cout<<ans%mod<<endl;
}
}
}
return 0;
}