数值叠加
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为 n 的序列 a ,第 i 位的数值为 a_i ,下标从 1 开始 。
现有 q 次操作,每次给出三个参数 l,r,k ,你需要对区间 [l,r] 的每一个数值增加 k 。
在所有操作结束后,请按照下标从小到大的顺序,输出所有数值为奇数的下标。

输入描述:

第一行有两个整数 n\ (\ 1 \leq n \leq 10^5\ ) 和 q\ (\ 1 \leq q \leq 10^6\ ) ,代表 序列长度 和 操作次数 。
第二行有 n 个整数 a_i\ (\ 1 \leq a_i \leq 10^9\ ) ,代表序列的初始数值。
随后 q 行,每行有三个整数 l,r\ (\ 1 \leq l \leq r \leq n\ ) 和 k\ (\ 1 \leq k \leq 10^9\ ) ,代表区间起始点和终止点,以及增加的数值。

输出描述:

输出一行,代表数值为奇数的下标。
示例1

输入

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

输出

复制
1 4 6

说明

初始状态:   1\ 1\ 4\ 5\ 1\ 4
第一次操作:1\ 8\ 11\ 12\ 1\ 4
第二次操作:1\ 8\ 20\ 21\ 10\ 13
第三次操作:9\ 16\ 28\ 29\ 18\ 13
数值为奇数 的下标为:1\ 4\ 6