病毒扩散
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛所在的城市有一种新型病毒开始扩散。在一个二维平面坐标系上,有一个感染者在 的位置。从 时刻 开始,每一个在 的感染者都会让下一个时刻 的感染者数量增加



上图展示了时刻    和时刻    病毒的扩散情况。在时刻 的感染者数量为 。在时刻 的感染者数量为 的感染者数量为

牛牛想知道,对于特殊的 个点,在时刻 感染者的数量。

输入描述:

第一行一个正整数,表示特殊点的数量。

接下来 行,每行三个非负整数 x_i,y_i,t_i,表示有一个特殊的点在 (x_i,y_i),牛牛想知道在时刻 t_i 这个点有多少感染者。

输出描述:

对于每一个特殊的点,输出一行一个非负整数,表示在  时刻这个点的感染者数量,对 998244353 取模。
示例1

输入

复制
3
0 0 1
1 1 2
2 0 2

输出

复制
1
2
1

说明

见题目描述中的图片。
示例2

输入

复制
5
5 5 7
2 7 9
0 14 14
0 14 15
14 29 100

输出

复制
0
36
1
15
891148910

备注: