using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); static long[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var map = NArr(n - 1); var q = NN; var x = NList; var mod = 998_244_353; var ans = new long[q]; for (var i = 0; i < q; ++i) { var list = new long[n + 1]; list[0] = 1; list[1] = x[i]; for (var j = 2; j <= n; ++j) { if (map[j - 2][0] == 1) { list[j] = (list[map[j - 2][1]] + list[map[j - 2][2]]) % mod; } else if (map[j - 2][0] == 2) { list[j] = map[j - 2][1] * list[map[j - 2][2]] % mod; } else { list[j] = list[map[j - 2][1]] * list[map[j - 2][2]] % mod; } } ans[i] = list[n]; } WriteLine(string.Join("\n", ans)); } }