길이가 N인 수열 a_1,a_2,⋯,a_N이 있다. 처음에 모든 a_i는 0이다. 이때, 다음과 같은 쿼리를 사용해 수열 a를 변화시킬 수 있다.
lrc: 수열 a의 l번째부터 r번째까지의 값을 c로 바꾼다.
Q개의 쿼리가 주어질 때, f(U,D,L,R)을 ‘U번째부터 D번째까지의 쿼리를 순서대로 사용했을 때 a_L+a_L+1+⋯+a_R의 값’으로 정의한다. f를 여러 번 시행할 경우, 각 시행은 서로 독립적이라 이전 f의 시행이 현재 f의 시행에 영향을 주지 않는다.
∑_U=1Q∑_D=UQ∑_L=1N∑_R=LNf(U,D,L,R)을 998\\, 244\\, 353$$(=119\times 2^{23}+1)으로 나눈 나머지를 계산해 보자. 998,244,353은 소수이다.
첫 번째 줄에 정수 N, Q가 공백으로 구분되어 주어진다. (1≤N,Q≤300,000)
두 번째 줄부터 Q개의 줄에 걸쳐 Q개의 쿼리가 한 줄에 하나씩 순서대로 주어진다. i번째 쿼리로 세 개의 정수 l_i, r_i, c_i이 공백으로 구분되어 주어진다. (1≤l_i≤r_i≤N; 0≤c_i<998,244,353)
∑_U=1Q∑_D=UQ∑_L=1N∑_R=LNf(U,D,L,R)를 998,244,353으로 나눈 나머지를 출력하시오.