#include using namespace std; typedef long long int ll; typedef pair P; typedef vector VI; typedef vector VVI; #define REP(i,n) for(ll i=0;i<(n);i++) #define ALL(v) v.begin(),v.end() template bool chmax(T &x, const T &y) {return (x bool chmin(T &x, const T &y) {return (x>y)?(x=y,true):false;}; constexpr ll MOD=998244353; constexpr ll INF=2e18; VI g[110000]; VI c(110000); int dfs(int v, int p){ int ret=1; for(auto to:g[v]){ if(to!=p) ret+=dfs(to,v); } c[v]=ret; return ret; } int main(){ int n, q; cin >> n >> q; int a, b; REP(i,n-1){ cin >> a >> b; a--, b--; g[a].push_back(b); g[b].push_back(a); } dfs(0,-1); int p, x; ll ans=0; REP(i,q){ cin >> p >> x; p--; ans+=c[p]*x; cout << ans << endl; } return 0; }