#include #include #include #include #include #include #include using namespace std; typedef long long ll; #define rep(i, n) for (int i=0;i < (int)(n);i++) vector> g; vector subsize; int dfs(int now,int pre){ int res = 1; for (auto nx:g[now]){ if (nx == pre) continue; res += dfs(nx,now); } return subsize[now] = res; } int main(){ int n,q; cin >> n >> q; g.resize(n); subsize.resize(n); rep(i,n-1){ int a,b; cin >> a >> b; a--;b--; g[a].push_back(b); g[b].push_back(a); } ll ans = 0; dfs(0,-1); while(q--){ int p; ll x; cin >> p >> x; ans += subsize[p-1] * x; cout << ans << endl; } return 0; }