수열과 쿼리의 부분합의 합

아직 제출이 없습니다시간 제한4초메모리 제한1024 MB

문제

길이가 NN인 수열 a_1,a_2,,a_Na\_1,a\_2,\cdots ,a\_N이 있다. 처음에 모든 a_ia\_i00이다. 이때, 다음과 같은 쿼리를 사용해 수열 aa를 변화시킬 수 있다.

lrcl r c: 수열 aall번째부터 rr번째까지의 값을 cc로 바꾼다.

QQ개의 쿼리가 주어질 때, f(U,D,L,R)f(U,D,L,R)을 ‘UU번째부터 DD번째까지의 쿼리를 순서대로 사용했을 때 a_L+a_L+1++a_Ra\_L+a\_{L+1}+\cdots +a\_R의 값’으로 정의한다. ff를 여러 번 시행할 경우, 각 시행은 서로 독립적이라 이전 ff의 시행이 현재 ff의 시행에 영향을 주지 않는다.

_U=1Q_D=UQ_L=1N_R=LNf(U,D,L,R)\sum\_{U=1}^Q\sum\_{D=U}^Q\sum\_{L=1}^N\sum\_{R=L}^Nf(U,D,L,R)998\\, 244\\, 353$$(=119\times 2^{23}+1)으로 나눈 나머지를 계산해 보자. 998,244,353998\\, 244\\, 353은 소수이다.

입력

첫 번째 줄에 정수 NN, QQ가 공백으로 구분되어 주어진다. (1N,Q300,000)(1\leq N,Q\leq 300\\, 000)

두 번째 줄부터 QQ개의 줄에 걸쳐 QQ개의 쿼리가 한 줄에 하나씩 순서대로 주어진다. ii번째 쿼리로 세 개의 정수 l_il\_i, r_ir\_i, c_ic\_i이 공백으로 구분되어 주어진다. (1l_ir_iN;(1\leq l\_i\leq r\_i\leq N; 0c_i<998,244,353)0\leq c\_i<998\\, 244\\, 353)

출력

_U=1Q_D=UQ_L=1N_R=LNf(U,D,L,R)\sum\_{U=1}^Q\sum\_{D=U}^Q\sum\_{L=1}^N\sum\_{R=L}^Nf(U,D,L,R)998,244,353998\\, 244\\, 353으로 나눈 나머지를 출력하시오.