#include <bits/stdc++.h>
#define task "main"
#define multi 0
using namespace std;
using ll = long long int;
using ld = long double;
using pll = pair<ll,ll>;
using pld = pair<ld,ld>;
const ll maxn = 2e5 + 5;
const ll mod = 1e9 + 7;
const ll INF = 1e18;
const ll maxlog = 21;
ll n, q;
ll a[maxn] , tin[maxn] , tout[maxn];
vector<ll> adj[maxn];
ll ti = 0;
void dfs(ll u , ll p)
{
tin[u] = ti;
ti++;
for(ll v: adj[u])
{
if(v!= p)
{
dfs(v,u);
}
}
tout[u] = ti;
}
struct segment
{
vector<ll>t;
void tao(ll n)
{
t.resize(4*n);
}
void update(ll id , ll l , ll r , ll pos , ll val)
{
if(l == r) t[id] = val;
else
{
ll mid = (l+r) >> 1;
if(pos <= mid) update(2*id,l,mid,pos,val);
else update(2*id+1,mid+1,r,pos,val);
t[id] = t[2*id+1] + t[2*id];
}
}
ll query(ll id , ll l , ll r , ll u , ll v)
{
if(u<=l && r <=v) return t[id];
if(r<u || v<l) return 0;
ll mid = (l+r) >> 1;
ll t1 = query(2*id,l,mid,u,v);
ll t2 = query(2*id+1,mid+1,r,u,v);
return t1 + t2;
}
};
void solve()
{
cin>>n>>q;
for(ll i = 1 ; i<=n ; i++) cin>>a[i];
for(ll i = 1; i<n ; i++)
{
ll u , v;
cin>>u>>v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1,-1);
segment seg;
seg.tao(n);
for(ll i = 1; i<=n ; i++)
{
seg.update(1,0,n-1,tin[i] , a[i]);
}
while(q--)
{
ll type; cin>>type;
if(type == 1)
{
ll s , x;
cin>>s>>x;
seg.update(1,0,n-1,tin[s] , x);
}
else
{
ll u; cin>>u;
cout<<seg.query(1,0,n-1,tin[u] , tout[u] - 1) << '\n';
}
}
}
int main()
{
if(fopen(task".inp" , "r"))
{
freopen(task".inp" , "r" , stdin);
freopen(task".out" , "w" , stdout);
freopen(task".err" , "w" , stderr);
}
int tt = 1;
if(multi)cin>>tt;
while(tt--)
{
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdGFzayAibWFpbiIKI2RlZmluZSBtdWx0aSAwCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nIGludDsKdXNpbmcgbGQgPSBsb25nIGRvdWJsZTsKdXNpbmcgcGxsID0gcGFpcjxsbCxsbD47CnVzaW5nIHBsZCA9IHBhaXI8bGQsbGQ+Owpjb25zdCBsbCBtYXhuID0gMmU1ICsgNTsKY29uc3QgbGwgbW9kICA9IDFlOSArIDc7CmNvbnN0IGxsIElORiA9IDFlMTg7CmNvbnN0IGxsIG1heGxvZyA9IDIxOwoKbGwgbiwgcTsKbGwgYVttYXhuXSAsIHRpblttYXhuXSAsIHRvdXRbbWF4bl07CnZlY3RvcjxsbD4gYWRqW21heG5dOwpsbCB0aSA9IDA7CnZvaWQgZGZzKGxsIHUgLCBsbCBwKQp7CiAgICB0aW5bdV0gPSB0aTsKICAgIHRpKys7CiAgICBmb3IobGwgdjogYWRqW3VdKQogICAgewogICAgICAgIGlmKHYhPSBwKQogICAgICAgIHsKICAgICAgICAgICAgZGZzKHYsdSk7CiAgICAgICAgfQogICAgfQogICAgdG91dFt1XSA9IHRpOwp9CgpzdHJ1Y3Qgc2VnbWVudAp7CiAgICB2ZWN0b3I8bGw+dDsKICAgIHZvaWQgdGFvKGxsIG4pCiAgICB7CiAgICAgICAgdC5yZXNpemUoNCpuKTsKICAgIH0KICAgIHZvaWQgdXBkYXRlKGxsIGlkICwgbGwgbCAsIGxsIHIgLCBsbCBwb3MgLCBsbCB2YWwpCiAgICB7CiAgICAgICAgaWYobCA9PSByKSB0W2lkXSA9IHZhbDsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsbCBtaWQgPSAobCtyKSA+PiAxOwogICAgICAgICAgICBpZihwb3MgPD0gbWlkKSB1cGRhdGUoMippZCxsLG1pZCxwb3MsdmFsKTsKICAgICAgICAgICAgZWxzZSB1cGRhdGUoMippZCsxLG1pZCsxLHIscG9zLHZhbCk7CiAgICAgICAgICAgIHRbaWRdID0gdFsyKmlkKzFdICsgdFsyKmlkXTsKICAgICAgICB9CiAgICB9CiAgICBsbCBxdWVyeShsbCBpZCAsIGxsIGwgLCBsbCByICwgbGwgdSAsIGxsIHYpCiAgICB7CiAgICAgICAgaWYodTw9bCAmJiByIDw9dikgcmV0dXJuIHRbaWRdOwogICAgICAgIGlmKHI8dSB8fCB2PGwpIHJldHVybiAwOwogICAgICAgIGxsIG1pZCA9IChsK3IpID4+IDE7CiAgICAgICAgbGwgdDEgPSBxdWVyeSgyKmlkLGwsbWlkLHUsdik7CiAgICAgICAgbGwgdDIgPSBxdWVyeSgyKmlkKzEsbWlkKzEscix1LHYpOwogICAgICAgIHJldHVybiB0MSArIHQyOwogICAgfQp9OwoKdm9pZCBzb2x2ZSgpCnsKICAgIGNpbj4+bj4+cTsKICAgIGZvcihsbCBpID0gMSA7IGk8PW4gOyBpKyspIGNpbj4+YVtpXTsKICAgIGZvcihsbCBpID0gMTsgaTxuIDsgaSsrKQogICAgewogICAgICAgIGxsIHUgLCB2OwogICAgICAgIGNpbj4+dT4+djsKICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGFkalt2XS5wdXNoX2JhY2sodSk7CiAgICB9CiAgICBkZnMoMSwtMSk7CiAgICBzZWdtZW50IHNlZzsKICAgIHNlZy50YW8obik7CiAgICBmb3IobGwgaSA9IDE7IGk8PW4gOyBpKyspCiAgICB7CiAgICAgICAgc2VnLnVwZGF0ZSgxLDAsbi0xLHRpbltpXSAsIGFbaV0pOwogICAgfQogICAgd2hpbGUocS0tKQogICAgewogICAgICAgIGxsIHR5cGU7IGNpbj4+dHlwZTsKICAgICAgICBpZih0eXBlID09IDEpCiAgICAgICAgewogICAgICAgICAgICBsbCBzICwgeDsKICAgICAgICAgICAgY2luPj5zPj54OwogICAgICAgICAgICBzZWcudXBkYXRlKDEsMCxuLTEsdGluW3NdICwgeCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGxsIHU7IGNpbj4+dTsKICAgICAgICAgICAgY291dDw8c2VnLnF1ZXJ5KDEsMCxuLTEsdGluW3VdICwgdG91dFt1XSAtIDEpIDw8ICdcbic7CiAgICAgICAgfQogICAgfQoKCgoKCn0KCmludCBtYWluKCkKewogICAgaWYoZm9wZW4odGFzayIuaW5wIiAsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiICwgInIiICwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIub3V0IiAsICJ3IiAsIHN0ZG91dCk7CiAgICAgICAgZnJlb3Blbih0YXNrIi5lcnIiICwgInciICwgc3RkZXJyKTsKICAgIH0KICAgIGludCB0dCA9IDE7CiAgICBpZihtdWx0aSljaW4+PnR0OwogICAgd2hpbGUodHQtLSkKICAgIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9Cg==