#include<bits/stdc++.h>
#define mod 998244353
using namespace std;
long long n,q;
long long f[200005];
struct eg{
long long v,w;
};
vector<eg>g[200005];
long long sive[200005];
void dfs(long long u,long long fa){
sive[u]=1;
for(long long i=0;i<g[u].size();i++){
eg v=g[u][i];
if(v.v!=fa){
dfs(v.v,u);
f[u]+=v.w*sive[v.v]%mod+f[v.v];
f[u]%=mod;
sive[u]+=sive[v.v];
}
}
}
void dfs1(long long u,long long fa){
for(long long i=0;i<g[u].size();i++){
eg v=g[u][i];
if(v.v!=fa){
f[v.v]=f[u]-sive[v.v]*v.w+(sive[1]-sive[v.v])*v.w;
f[v.v]%=mod;
dfs1(v.v,u);
}
}
}
long long sum;
signed main(){
cin>>n>>q;
for(long long i=1,u,v,w;i<n;i++){
cin>>u>>v>>w;
g[u].push_back({v,w});
g[v].push_back({u,w});
}
dfs(1,0);
dfs1(1,0);
for(long long i=1;i<=n;i++)
sum+=f[i];
for(long long i=1,x,v;i<=q;i++){
cin>>x>>v;
cout<<(sum+n*v*2%mod+f[x]*2)%mod<<"\n";
}
return 0;
}