#ACSPJ2024C. 操作

操作

问题描述

小可可有一个长度为 nn 的初始都为 00 的数组和从左到右的 mm 个机器,每个机器 ii 都有两种类别之一。若机器 ii 是第一种机器,那么它需要执行的操作是将 axia_{x_i} 的值加上 yiy_i;如果机器 ii 是第二种机器,那么它需要执行的操作是依次执行第 lil_i 到第 rir_i 个机器 的操作,其中 ri<ir_i < i

需要注意的是,每个第二种机器只会执行它左边机器的操作。

现在小可可依次执行了机器 c1,c2,,ckc_1, c_2, \cdots , c_k 的操作,想知道最后得到的数组是什么。 由于数组中的元素可能很大,你只需要帮她求出每个元素除以 1000710007 的余数即可。

输入

第一行三个正整数 nnmmkk

接下来一行 kk 个正整数,表示序列 cc

接下来 mm 行,每行三个正整数,第一个正整数 oi{1,2}o_i \in \{1, 2\},表示机器 ii 的类型。如 果 o=1o = 1,则接下来两个正整数 xi,yix_i , y_i1xin1 ≤ x_i ≤ n1yi1041 ≤ y_i ≤ 10^4。如果 o=2o = 2,则接下 来两个正整数 li,ril_i , r_i1liri<i1 ≤ l_i ≤ r_i < i

输出

一行 nn 个正整数,表示数组中每个元素除以 1000710007 的余数。

样例 1

2 3 3
1 2 3
1 1 2
2 1 1
2 1 2
8 0

样例 1 解释

先执行第一个机器的操作,给 a1a_1 加上了 22

然后执行第二个机器的操作,它操作了第一个机器,给 a1a_1 加上了 22

然后执行第三个机器的操作,它先操作了第一个机器,给 a1a_1 加上了 22,然后操作了 第二个机器。第二个机器又操作了第一个机器,给 a1a_1 加上了 22

所以最后 a1=8a_1 = 8a2=0a_2 = 0

约定和数据范围

对于 10%10\% 的数据,1n,m,k101 ≤ n, m, k ≤ 10

对于 30%30\% 的数据,1n,m,k10001 ≤ n, m, k ≤ 1000

对于另 20%20\% 的数据,n=1n = 1

对于另 20%20\% 的数据,k=1k = 1

对于 100%100\% 的数据,1n,m,k2×1051 ≤ n, m, k ≤ 2 × 10^5

c_1.in  c_1.out

c_2.in  c_2.out