#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 1e5;
int n, s, q;
ll val[maxn + 10], lazy[maxn + 10];
vector<int> adj[maxn + 10], heavy[maxn + 10];
bool heavyNode[maxn + 10];
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("TQUERY.INP", "r"))
{
freopen("TQUERY.INP", "r", stdin);
freopen("TQUERY.OUT", "w", stdout);
}
cin >> n >> q;
for (int i = 1; i < n; i++)
{
int x, y;
cin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
s = sqrt(n);
for (int i = 1; i <= n; i++)
heavyNode[i] = adj[i].size() > s;
for (int i = 1; i <= n; i++)
for (int x : adj[i])
if (heavyNode[x])
heavy[i].push_back(x);
while (q--)
{
int t;
cin >> t;
if (t == 1)
{
int u, d;
cin >> u >> d;
if (heavyNode[u]) lazy[u] += d;
else
{
for (int v : adj[u])
val[v] += d;
}
}
else
{
int u;
cin >> u;
ll ans = val[u];
for (int x : heavy[u])
ans += lazy[x];
cout << ans, el;
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gMWU1OwoKaW50IG4sIHMsIHE7CmxsIHZhbFttYXhuICsgMTBdLCBsYXp5W21heG4gKyAxMF07CnZlY3RvcjxpbnQ+IGFkalttYXhuICsgMTBdLCBoZWF2eVttYXhuICsgMTBdOwpib29sIGhlYXZ5Tm9kZVttYXhuICsgMTBdOwoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiVFFVRVJZLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiVFFVRVJZLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIlRRVUVSWS5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gbiA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBhZGpbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGFkalt5XS5wdXNoX2JhY2soeCk7CiAgICB9CiAgICBzID0gc3FydChuKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBoZWF2eU5vZGVbaV0gPSBhZGpbaV0uc2l6ZSgpID4gczsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBmb3IgKGludCB4IDogYWRqW2ldKQogICAgICAgICAgICBpZiAoaGVhdnlOb2RlW3hdKQogICAgICAgICAgICAgICAgaGVhdnlbaV0ucHVzaF9iYWNrKHgpOwogICAgd2hpbGUgKHEtLSkKICAgIHsKICAgICAgICBpbnQgdDsKICAgICAgICBjaW4gPj4gdDsKICAgICAgICBpZiAodCA9PSAxKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHUsIGQ7CiAgICAgICAgICAgIGNpbiA+PiB1ID4+IGQ7CiAgICAgICAgICAgIGlmIChoZWF2eU5vZGVbdV0pIGxhenlbdV0gKz0gZDsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IgKGludCB2IDogYWRqW3VdKQogICAgICAgICAgICAgICAgICAgIHZhbFt2XSArPSBkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGludCB1OwogICAgICAgICAgICBjaW4gPj4gdTsKICAgICAgICAgICAgbGwgYW5zID0gdmFsW3VdOwogICAgICAgICAgICBmb3IgKGludCB4IDogaGVhdnlbdV0pCiAgICAgICAgICAgICAgICBhbnMgKz0gbGF6eVt4XTsKICAgICAgICAgICAgY291dCA8PCBhbnMsIGVsOwogICAgICAgIH0KICAgIH0KfQ==