#include<bits/stdc++.h>
using namespace std;
int n,m;
const int P=998244353;
int l[5010],r[5010];
int p[5010];
int f[5010][5010];
int g[5010];
int ans[5010];
int inv[5010];
int add(int x,int y){
int z=x+y;
if(z>=P)z-=P;
return z;
}
int del(int x,int y){
int z=x-y;
if(z<0)z+=P;
return z;
}
int mul(int x,int y){
long long z=1ll*x*y;
if(z>=P)z%=P;
return z;
}
int qpow(int x,int y){
int g=1;
while(y){
if(y&1)g=mul(g,x);
x=mul(x,x),y>>=1;
}return g;
}
int main(){
scanf("%d",&n);inv[1]=1;
for(int i=2;i<=n;++i)inv[i]=mul((P-P/i),inv[P%i]);
for(int i=2;i<=n;++i){
scanf("%d%d",&l[i],&r[i]);
p[i]=inv[r[i]-l[i]+1];
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
f[i][j]=mul(del(g[r[j]],g[l[j]-1]),p[j]);
if(j==i)f[i][j]=1;
g[j]=add(g[j-1],f[i][j]);
}
scanf("%d",&m);
for(int i=1;i<=n;++i)
g[i]=0;
for(int i=1;i<=m;++i){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
w=add(w,0);
for(int j=n;j>=1;--j){
g[j]=add(g[j],mul(mul(f[j][u],f[j][v]),w));
ans[j]=add(ans[j],mul(add(f[j][u],f[j][v]),w));
}
}
for(int i=n;i>=1;--i)
for(int j=1;j<i;++j)
g[j]=del(g[j],mul(g[i],mul(f[j][i],f[j][i])));
for(int i=2;i<=n;++i)
for(int j=1;j<=n;++j)
ans[i]=del(ans[i],mul(mul(g[j],f[i][j]),2));
for(int i=2;i<=n;++i)
printf("%d ",ans[i]);
return 0;
}