#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
using ll=long long ;
const int maxn=1e3+10;
const int mod=1e6+3;
int dp[maxn][maxn];
int sum[maxn][maxn];
int a[maxn];
int main()
{
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[i][i]=a[i];
}
for(int len=1;len<=n;len++){
for(int j=1;j+len<=n+1;j++){
int ends=j+len-1;
for(int i=j;i<ends;i++){
dp[j][ends]=max(dp[j][ends],dp[j][i]+dp[i+1][ends]+(int)pow(abs(sum[j][i]-sum[i+1][ends]),2))%mod;
sum[j][ends]=sum[j][i]*sum[i+1][ends]%mod;
}
}
}
cout<<dp[1][n]%mod;
}
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
using ll = unsigned long long int;
bool vis[10000008];
int mi(int a,int b){
int r=1;
while(b){
if(1&b)r=r*a;
a=a*a;b>>=1;
}
return r;
}
ll fan(int n){
if(!vis[n])return 1;
int u=n;
for(register int i=2;i*i<=n;i++){
if(n%i==0){
int cnt=0;
while(n%i==0){
n/=i;
cnt++;
}
if(n==1){
return 1ll*i*fan((ll)(mi(i,cnt-2)));
}
else{
return u/mi(i,cnt)*fan((mi(i,cnt)));
}
}
}
}
int main()
{
//time_t time;
for(register int i=2;i<=10000007;i++)
if(vis[i])continue;
else for(register int j=2;i*j<=10000007;j++)
vis[i*j]=true;
int n;
scanf("%d",&n);
ll ans=0;
for(register int i=1;i<=n;i++){
if(!vis[i])ans++;
else ans+=fan(i);
}
printf("%u",ans);
//time=clock();
//cout<<time/1.0<<"ms";
}