CF2007B Index and Maximum Value

Description

After receiving yet another integer array $ a_1, a_2, \ldots, a_n $ at her birthday party, Index decides to perform some operations on it. Formally, there are $ m $ operations that she is going to perform in order. Each of them belongs to one of the two types: - $ \texttt{+ l r} $ . Given two integers $ l $ and $ r $ , for all $ 1 \leq i \leq n $ such that $ l \leq a_i \leq r $ , set $ a_i := a_i + 1 $ . - $ \texttt{- l r} $ . Given two integers $ l $ and $ r $ , for all $ 1 \leq i \leq n $ such that $ l \leq a_i \leq r $ , set $ a_i := a_i - 1 $ . For example, if the initial array $ a = [7, 1, 3, 4, 3] $ , after performing the operation $ \texttt{+} \space 2 \space 4 $ , the array $ a = [7, 1, 4, 5, 4] $ . Then, after performing the operation $ \texttt{-} \space 1 \space 10 $ , the array $ a = [6, 0, 3, 4, 3] $ . Index is curious about the maximum value in the array $ a $ . Please help her find it after each of the $ m $ operations.

Input Format

Each test consists of multiple test cases. The first line contains a single integer $ t $ ( $ 1 \leq t \leq 2 \cdot 10^4 $ ) — the number of test cases. The description of the test cases follows. The first line of each test case contains two integers $ n $ and $ m $ ( $ 1 \leq n \leq 10^5 $ , $ 1 \leq m \leq 10^5 $ ) — the length of the array and the number of operations. The second line of each test case contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 1 \leq a_i \leq 10^9 $ ) — the initial array $ a $ . Then $ m $ lines follow, each line corresponds to the operation, in the following format: $ \texttt{c l r} $ ( $ c \in \{\texttt +, \texttt -\} $ , $ l $ and $ r $ are integers, $ 1 \leq l \leq r \leq 10^9 $ ) — the description of the operation. Note that the elements $ a_i $ may not satisfy $ 1\le a_i\le 10^9 $ after some operations, as it is shown in the example. It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^5 $ , and the sum of $ m $ over all test cases does not exceed $ 10^5 $ .

Output Format

For each test case, output one single line containing $ m $ integers, with the $ i $ -th of them describing the maximum value of the array after the $ i $ -th operation.

Explanation/Hint

In the first test case, the process of the operations is listed below: - After the first operation, the array becomes equal $ [2,3,4,3,2] $ . The maximum value is $ 4 $ . - After the second operation, the array becomes equal $ [1,2,4,2,1] $ . The maximum value is $ 4 $ . - After the third operation, the array becomes equal $ [2,3,4,3,2] $ . The maximum value is $ 4 $ . - After the fourth operation, the array becomes equal $ [3,4,5,4,3] $ . The maximum value is $ 5 $ . - After the fifth operation, the array becomes equal $ [3,4,5,4,3] $ . The maximum value is $ 5 $ . In the second test case, the process of the operations is listed below: - After the first operation, the array becomes equal $ [2,4,4,5,5] $ . The maximum value is $ 5 $ . - After the second operation, the array becomes equal $ [3,4,4,5,5] $ . The maximum value is $ 5 $ . - After the third operation, the array becomes equal $ [3,3,3,4,4] $ . The maximum value is $ 4 $ . - After the fourth operation, the array becomes equal $ [2,2,2,4,4] $ . The maximum value is $ 4 $ . - After the fifth operation, the array becomes equal $ [1,1,1,3,3] $ . The maximum value is $ 3 $ .