import java.util.*;
//grane--linije kojima su povezani cvorovi--povezani (4,5) 4-od, 5-do

class PovezivanjeGrana {

    int odCvora;
    int doCvora;

}
//upit -- cvor na kom ce se dodti odredjen br zlatnika(zlatnikNaTomCvoru)

class Upiti {

    int cvor;
    int zlatnikNaTomCvoru;
}

class ZlatniciPoBanci {

    int zlatnikUbanci;
}

class BankeUpit extends Upiti {

    public int cvoroviZlatnici;
    public Vector<Upiti> vektorZaUpit;

    public BankeUpit(int cvoroviZlatnici) {
        this.cvoroviZlatnici = cvoroviZlatnici;
        vektorZaUpit = new Vector<>();
        for (int i = 0; i < cvoroviZlatnici; i++) {
            vektorZaUpit.add(new Upiti());
        }
    }
}

class BankePovezivanjeGrana extends PovezivanjeGrana {

    public int grane;
    public Vector<PovezivanjeGrana> graneVektor;

    public BankePovezivanjeGrana(int grane) {
        this.grane = grane;
        graneVektor = new Vector<>();
        for (int i = 0; i < grane; i++) {
            graneVektor.add(new PovezivanjeGrana());
        }
    }
}

class BankeZlatniciPoBanci extends ZlatniciPoBanci {

    public int cvorovi;
    public Vector<ZlatniciPoBanci> vektorZlanikaPoBanci;

    public BankeZlatniciPoBanci(int cvorovi) {
        this.cvorovi = cvorovi;
        vektorZlanikaPoBanci = new Vector<>();
        for (int i = 0; i < cvorovi; i++) {
            vektorZlanikaPoBanci.add(new ZlatniciPoBanci());
        }
    }
}

public class Zlatnici3 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("br banke");

        int brBanaka = in.nextInt();
        int brGranaIzmdjuBanki = brBanaka - 1;

        BankePovezivanjeGrana BanakaPovezivanje = new BankePovezivanjeGrana(brGranaIzmdjuBanki);

        System.out.println("kobinacije");
        for (int i = 0; i < brGranaIzmdjuBanki; i++) {
            BanakaPovezivanje.graneVektor.get(i).odCvora = in.nextInt() - 1;
            BanakaPovezivanje.graneVektor.get(i).doCvora = in.nextInt() - 1;
        }

        System.out.println("zl po banci");

        BankeZlatniciPoBanci BanakaZlatnici = new BankeZlatniciPoBanci(brBanaka);
        for (int i = 0; i < brBanaka; i++) {
            BanakaZlatnici.vektorZlanikaPoBanci.get(i).zlatnikUbanci = in.nextInt();
        }
        System.out.println("br upita");

        int brUpita = in.nextInt();
        int nizResenja[] = new int[brUpita + 1];

        BankeUpit kombinacijaBanakaZaUpit = new BankeUpit(brUpita);
        System.out.println("upiti");
        for (int i = 0; i < brGranaIzmdjuBanki; i++) {
            kombinacijaBanakaZaUpit.vektorZaUpit.get(i).zlatnikNaTomCvoru = in.nextInt();
            kombinacijaBanakaZaUpit.vektorZaUpit.get(i).cvor = in.nextInt() - 1;
        }

        System.out.println("v");

        Vector<Integer> indexiKrajva = new Vector<>();
        Vector<Integer> najmanjiZai = new Vector<>();

        List<Integer> redjanjeKombinacija[] = new List[brBanaka];

        for (int i = 0; i < brGranaIzmdjuBanki; i++) {
            if (BanakaPovezivanje.graneVektor.get(i).odCvora == i) {
                redjanjeKombinacija[i].add(BanakaPovezivanje.graneVektor.get(i).doCvora);
            }
            if (BanakaPovezivanje.graneVektor.get(i).doCvora == i) {
                redjanjeKombinacija[i].add(BanakaPovezivanje.graneVektor.get(i).odCvora);
            }
        }

        // vektor sa svim krajevima
        int minIndexZaZlatnik = 0;
        int minPoKombinaciji = 0;

        for (int i = 0; i < brGranaIzmdjuBanki; i++) {
            if (redjanjeKombinacija[i].size() == 1) {
                indexiKrajva.add(i);
                if (BanakaZlatnici.vektorZlanikaPoBanci.get(i).zlatnikUbanci < BanakaZlatnici.vektorZlanikaPoBanci.get(minIndexZaZlatnik).zlatnikUbanci) {
                    minIndexZaZlatnik = i;
                }
            }
        }

        for (int i = 0; i < redjanjeKombinacija[minIndexZaZlatnik].size(); i++) {
            if (redjanjeKombinacija[minIndexZaZlatnik].get(i) < redjanjeKombinacija[minIndexZaZlatnik].get(minPoKombinaciji)) {
                minPoKombinaciji = i;
            }
        }
        
        

    }

}