函数函数函
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 70 M,其他语言140 M
64bit IO Format: %lld

题目描述

定义一个长度为 n 的数列 a 的“简单函数”(下标从1开始):


显然给定一个数列对其求值太 了,现在我们考虑多次询问,每次询问给定一个区间 要求你求出 的值:

输入描述:

第一行两个整数 n,q 分别为数列 a 的长度和询问数。

接下来一行,n 个整数,表示

接下来 q 行,每行两个整数 l,r ,为询问区间

满足

输出描述:

q 行,每行一个整数,为第 i 个询问的答案对 998244353 取模。
示例1

输入

复制
10 10
7 7 3 7 6 4 1 4 5 6 
5 6
8 9
5 7
7 7
4 8
2 5
1 8
1 8
1 10
3 5

输出

复制
16
14
28
1
103
81
371
371
639
39