#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include using namespace std; //using namespace atcoder; #define repr(i, a, b) for (int i = (int)(a); i < (int)(b); i++) #define rep(i, n) repr(i, 0, n) #define INF 2e9 //#define MOD 1000000007 #define MOD 998244353 #define LINF (long long)4e18 #define jck 3.141592 #define PI acos(-1.0) const double EPS = 1e-10; using ll = long long; using Pi = pair; using Pl = pair; //using mint = modint1000000007; int dh[] = {-1,0,1,0}; int dw[] = {0,1,0,-1}; int sz[100010]; vector> G; int n,q; void dfs(int u, int p = -1){ sz[u] = 1; for(auto v : G[u]){ if(v == p) continue; dfs(v,u); sz[u] += sz[v]; } } int main(){ cin >> n >> q; G.resize(n); rep(i,n-1){ int a,b; cin >> a >> b; a--; b--; G[a].push_back(b); G[b].push_back(a); } dfs(0); ll ans = 0; while(q--){ int p,x; cin >> p >> x; p--; ans += 1LL*sz[p]*x; cout << ans << endl; } }