#include <bits/stdc++.h>
#define name "vestonluvto"
const char* namein = name ".inp";
const char* nameout = name ".out";
#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define PI 3.141592653589793238462
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define pb emplace_back
using namespace std;
#ifndef LOCAL
#define debug(x) cerr << #x <<" "; _print(x); cerr << endl;
#else
#define debug(x)
#endif
void _print(int t) {cerr << t;}
void _print(long long t) {cerr << t;}
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
void _print(long double t) {cerr << t;}
void _print(double t) {cerr << t;}
void _print(unsigned long long t) {cerr << t;}
template <class T, class V> void _print(pair <T, V> p);
template <class T> void _print(vector <T> v);
template <class T> void _print(set <T> v);
template <class T, class V> void _print(map <T, V> v);
template <class T> void _print(multiset <T> v);
template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.first); cerr << ","; _print(p.second); cerr << "}";}
template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}
void homefix(){
#ifndef LOCAL
#endif
}
void home(){
homefix();
if (fopen(namein, "r")) {
freopen(namein, "r", stdin);
freopen(nameout, "w", stdout);
}
}
const int MAXN = 2e5 + 5;
int n;
long long a[MAXN];
vector<int> dt[MAXN];
map<int, int> mp[MAXN];
int max_freq[MAXN];
long long sum_max[MAXN];
long long ans[MAXN];
void nhap(){
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1; i < n; i++){
int u, v;
cin >> u >> v;
dt[u].pb(v);
dt[v].pb(u);
}
}
void dfs(int u, int p){
mp[u][a[u]] = 1;
max_freq[u] = 1;
sum_max[u] = a[u];
for(int &v : dt[u]){
if(v == p) continue;
dfs(v, u);
if(sz(mp[u]) < sz(mp[v])){
swap(mp[u], mp[v]);
swap(max_freq[u], max_freq[v]);
swap(sum_max[u], sum_max[v]);
}
for(auto &k : mp[v]){
int col = k.first;
int f = k.second;
mp[u][col] += f;
int cur_f = mp[u][col];
if(cur_f > max_freq[u]){
max_freq[u] = cur_f;
sum_max[u] = col;
} else if(cur_f == max_freq[u]){
sum_max[u] += col;
}
}
mp[v].clear();
}
ans[u] = sum_max[u];
}
void solve(){
dfs(1, 0);
for(int i = 1; i <= n; i++){
cout << ans[i] << ' ';
}
}
int main(){
fastio();
home();
int t = 1;
while(t--){
nhap();
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIG5hbWUgInZlc3Rvbmx1dnRvIgpjb25zdCBjaGFyKiBuYW1laW4gPSBuYW1lICIuaW5wIjsKY29uc3QgY2hhciogbmFtZW91dCA9IG5hbWUgIi5vdXQiOwoKI2RlZmluZSBmYXN0aW8oKSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCkKI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MgojZGVmaW5lIHN6KHgpICgoaW50KSh4KS5zaXplKCkpCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSBwYiBlbXBsYWNlX2JhY2sKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojaWZuZGVmIExPQ0FMCiNkZWZpbmUgZGVidWcoeCkgY2VyciA8PCAjeCA8PCIgIjsgX3ByaW50KHgpOyBjZXJyIDw8IGVuZGw7CiNlbHNlCiNkZWZpbmUgZGVidWcoeCkKI2VuZGlmCgp2b2lkIF9wcmludChpbnQgdCkge2NlcnIgPDwgdDt9CnZvaWQgX3ByaW50KGxvbmcgbG9uZyB0KSB7Y2VyciA8PCB0O30Kdm9pZCBfcHJpbnQoc3RyaW5nIHQpIHtjZXJyIDw8IHQ7fQp2b2lkIF9wcmludChjaGFyIHQpIHtjZXJyIDw8IHQ7fQp2b2lkIF9wcmludChsb25nIGRvdWJsZSB0KSB7Y2VyciA8PCB0O30Kdm9pZCBfcHJpbnQoZG91YmxlIHQpIHtjZXJyIDw8IHQ7fQp2b2lkIF9wcmludCh1bnNpZ25lZCBsb25nIGxvbmcgdCkge2NlcnIgPDwgdDt9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVj4gdm9pZCBfcHJpbnQocGFpciA8VCwgVj4gcCk7CnRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIF9wcmludCh2ZWN0b3IgPFQ+IHYpOwp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBfcHJpbnQoc2V0IDxUPiB2KTsKdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFY+IHZvaWQgX3ByaW50KG1hcCA8VCwgVj4gdik7CnRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIF9wcmludChtdWx0aXNldCA8VD4gdik7CnRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBWPiB2b2lkIF9wcmludChwYWlyIDxULCBWPiBwKSB7Y2VyciA8PCAieyI7IF9wcmludChwLmZpcnN0KTsgY2VyciA8PCAiLCI7IF9wcmludChwLnNlY29uZCk7IGNlcnIgPDwgIn0iO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgX3ByaW50KHZlY3RvciA8VD4gdikge2NlcnIgPDwgIlsgIjsgZm9yIChUIGkgOiB2KSB7X3ByaW50KGkpOyBjZXJyIDw8ICIgIjt9IGNlcnIgPDwgIl0iO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgX3ByaW50KHNldCA8VD4gdikge2NlcnIgPDwgIlsgIjsgZm9yIChUIGkgOiB2KSB7X3ByaW50KGkpOyBjZXJyIDw8ICIgIjt9IGNlcnIgPDwgIl0iO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgX3ByaW50KG11bHRpc2V0IDxUPiB2KSB7Y2VyciA8PCAiWyAiOyBmb3IgKFQgaSA6IHYpIHtfcHJpbnQoaSk7IGNlcnIgPDwgIiAiO30gY2VyciA8PCAiXSI7fQp0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVj4gdm9pZCBfcHJpbnQobWFwIDxULCBWPiB2KSB7Y2VyciA8PCAiWyAiOyBmb3IgKGF1dG8gaSA6IHYpIHtfcHJpbnQoaSk7IGNlcnIgPDwgIiAiO30gY2VyciA8PCAiXSI7fQoKdm9pZCBob21lZml4KCl7CiAgICAjaWZuZGVmIExPQ0FMCiAgICAjZW5kaWYKfQoKdm9pZCBob21lKCl7CiAgICAgaG9tZWZpeCgpOwogICAgIGlmIChmb3BlbihuYW1laW4sICJyIikpIHsKICAgICAgICBmcmVvcGVuKG5hbWVpbiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihuYW1lb3V0LCAidyIsIHN0ZG91dCk7CiAgICAgfQp9Cgpjb25zdCBpbnQgTUFYTiA9IDJlNSArIDU7CmludCBuOwpsb25nIGxvbmcgYVtNQVhOXTsKdmVjdG9yPGludD4gZHRbTUFYTl07CgptYXA8aW50LCBpbnQ+IG1wW01BWE5dOwppbnQgbWF4X2ZyZXFbTUFYTl07CmxvbmcgbG9uZyBzdW1fbWF4W01BWE5dOwpsb25nIGxvbmcgYW5zW01BWE5dOwoKdm9pZCBuaGFwKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuOyBpKyspewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgZHRbdV0ucGIodik7CiAgICAgICAgZHRbdl0ucGIodSk7CiAgICB9Cn0KCnZvaWQgZGZzKGludCB1LCBpbnQgcCl7CiAgICBtcFt1XVthW3VdXSA9IDE7CiAgICBtYXhfZnJlcVt1XSA9IDE7CiAgICBzdW1fbWF4W3VdID0gYVt1XTsKCiAgICBmb3IoaW50ICZ2IDogZHRbdV0pewogICAgICAgIGlmKHYgPT0gcCkgY29udGludWU7CiAgICAgICAgZGZzKHYsIHUpOwogICAgICAgIAogICAgICAgIGlmKHN6KG1wW3VdKSA8IHN6KG1wW3ZdKSl7CiAgICAgICAgICAgIHN3YXAobXBbdV0sIG1wW3ZdKTsKICAgICAgICAgICAgc3dhcChtYXhfZnJlcVt1XSwgbWF4X2ZyZXFbdl0pOwogICAgICAgICAgICBzd2FwKHN1bV9tYXhbdV0sIHN1bV9tYXhbdl0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3IoYXV0byAmayA6IG1wW3ZdKXsKICAgICAgICAgICAgaW50IGNvbCA9IGsuZmlyc3Q7CiAgICAgICAgICAgIGludCBmID0gay5zZWNvbmQ7CiAgICAgICAgICAgIG1wW3VdW2NvbF0gKz0gZjsKICAgICAgICAgICAgaW50IGN1cl9mID0gbXBbdV1bY29sXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGN1cl9mID4gbWF4X2ZyZXFbdV0pewogICAgICAgICAgICAgICAgbWF4X2ZyZXFbdV0gPSBjdXJfZjsKICAgICAgICAgICAgICAgIHN1bV9tYXhbdV0gPSBjb2w7CiAgICAgICAgICAgIH0gZWxzZSBpZihjdXJfZiA9PSBtYXhfZnJlcVt1XSl7CiAgICAgICAgICAgICAgICBzdW1fbWF4W3VdICs9IGNvbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBtcFt2XS5jbGVhcigpOwogICAgfQogICAgYW5zW3VdID0gc3VtX21heFt1XTsKfQoKdm9pZCBzb2x2ZSgpewogICAgZGZzKDEsIDApOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8ICcgJzsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGZhc3RpbygpOyAKICAgIGhvbWUoKTsKICAgIGludCB0ID0gMTsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgbmhhcCgpOwogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=