#include<bits/stdc++.h>
using namespace std;
int a[205],b[205][205],n;
int dp[205];
int maps[205],maxn=1;
void print(int n)
{
if(maps[n]>0)
{
print(maps[n]);
}
cout<<n;
if(n!=maxn)
{
cout<<"-";
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
dp[i]=a[i];
}
int x,y;
while(cin>>x>>y&&x!=0&&y!=0)
{
b[x][y]=1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(b[j][i]&&dp[i]<dp[j]+a[i])
{
dp[i]=dp[j]+a[i];
maps[i]=j;
}
}
}
for(int i=1;i<=n;i++)
{
if(dp[maxn]<dp[i])
{
maxn=i;
}
}
print(maxn);
cout<<endl<<dp[maxn]<<endl;
return 0;
}