#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    int n,prvi=0;cin>>n;
    int a[n];
    ll zbir=0;
    for(int i=0;i<n;i++){
        cin>>a[i];
        zbir+=ll(a[i]);
    }
    vector<int> adj[n];
    for(int i=0;i<n-1;i++){
        int u,v;
        cin >> u >> v;
        u--;v--;
        if(u==0 || v==0)prvi++;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    if(prvi==n-1){// svi su povezani sa njim
        if((zbir)-ll(a[0]) >=  ll(a[0])){//zbir svih bez prvog VS prvi
            cout<<a[0]<<endl;//prvi je manji ili jednak
            cout<<1<<endl;
            cout<<1<<endl;
            cout<<0<<endl;
        }
        else{
            cout<<(zbir)-ll(a[0])<<endl;
            cout<<n-1<<endl;
            for(int i=2;i<=n;i++){
                cout<<i<<" ";
            }cout<<endl;
            cout<<0<<endl;
        }
        return 0;
    }

    /*for(int i=0;i<n;i++){
        for(auto x:adj[i]){
            cout<<x<<" ";
        }cout<<endl;
    }*/
    return 0;
}