#CF2125D. 线段覆盖

线段覆盖

D. 线段覆盖
时间限制:2 秒
内存限制:256 兆字节

有一条长度为 mm 的线性条带,单元格编号为 11mm(从左到右)。

给定 nn 条线段。每条线段由四个数字定义:l,r,p,ql, r, p, q —— 该线段覆盖从 llrr 的单元格(包含两端),并且以概率 pq\frac{p}{q} 存在(各线段独立)。

你的任务是计算每个单元格恰好被一条线段覆盖的概率。


输入
第一行包含两个整数 nnmm1n,m21051 \le n, m \le 2 \cdot 10^5)。

接下来 nn 行,每行包含四个整数 li,ri,pi,qil_i, r_i, p_i, q_i1lirim1 \le l_i \le r_i \le m1pi<qi<9982443531 \le p_i < q_i < 998244353)。


输出
输出一个整数 —— 每个单元格恰好被一条线段覆盖的概率,对 998244353998244353 取模。

形式化地说,概率可以表示为不可约分数 xy\frac{x}{y}。你需要输出 xy1mod998244353x \cdot y^{-1} \bmod 998244353,其中 y1y^{-1} 是满足 yy11(mod998244353)y \cdot y^{-1} \equiv 1 \pmod{998244353} 的整数。


样例
输入

3 3
1 2 1 3
3 3 1 2
1 3 2 3

输出

610038216

输入

2 3
1 2 1 2
2 3 1 2

输出

0

输入

8 5
1 3 1 2
1 5 1 6
1 4 4 5
5 5 1 7
4 5 1 2
4 5 2 5
3 3 2 7
1 2 1 3

输出

94391813

说明

  • 第一个样例中,概率等于 518\frac{5}{18}