AT_aalc001_h 加算と modulo 演算

Description

You are given a sequence of nonnegative integers $ A=(A_1,A_2,\ldots,A_N) $ of length $ N $ . Process $ Q $ queries. Each query is of one of the following $ 2 $ types: - `1 i x`: Change $ A_i $ to $ x $ . - `2 l r x`: Starting with the given $ x $ , perform the following operation for $ i=l,l+1,\ldots,r $ in this order, and print the final value of $ x $ . - If $ A_i=0 $ , change $ x $ to $ x \bmod{998244353} $ . - If $ A_i\gt 0 $ , change $ x $ to $ x+A_i $ .

Input Format

The input is given from Standard Input in the following format: > $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $ Each query is given in one of the following formats: > $ 1 $ $ i $ $ x $ > $ 2 $ $ l $ $ r $ $ x $

Output Format

Let $ q $ be the number of type $ 2 $ queries. Print $ q $ lines. The $ j $ -th line should contain the answer to the $ j $ -th type $ 2 $ query.

Explanation/Hint

### Sample Explanation 1 For the first query, $ x $ changes as $ 998244350,998244358,5,16,21 $ , so print $ 21 $ . After query $ 2 $ , $ A=(8,6,11,5) $ . For query $ 3 $ , $ x $ changes as $ 10,16,27,32 $ , so print $ 32 $ . ### Constraints - $ 1\leq N\leq 2\times 10^5 $ - $ 1\leq Q\leq 2\times 10^5 $ - $ 0\leq A_i\leq 10^9 $ - For type $ 1 $ queries, $ 1\leq i\leq N $ , $ 0\leq x\leq 10^9 $ - For type $ 2 $ queries, $ 1\leq l\leq r\leq N $ , $ 0\leq x\leq 10^9 $ - All numerical values in the input are integers.