Антиамуни управляет $$$n$$$ ползунками на одномерной дорожке длиной $$$m$$$. Каждый ползунок занимает ровно одну единицу пространства и начинается с уникальной позиции. Ползунки пронумерованы от $$$1$$$ до $$$n$$$ и расположены слева направо, так что $$$i$$$-й ползунок изначально находится на позиции $$$a_i$$$.
Антиамуни даны $$$q$$$ операций. Каждая операция описывается двумя целыми числами $$$i$$$ и $$$x$$$ ($$$1\le i\le n$$$, $$$i \leq x \leq m - n + i$$$). Операция перемещает $$$i$$$-й ползунок на позицию $$$x$$$. Однако, если это перемещение вызывает столкновение с другим ползунком (т.е. если между текущей позицией $$$i$$$-го ползунка и целевой позицией $$$x$$$ находится какой-либо другой ползунок), то этот мешающий ползунок сдвигается в том же направлении на одну единицу, пока не перестанет вызывать столкновение с $$$i$$$-м ползунком. Это может вызвать цепную реакцию, когда один ползунок толкает другой и так далее, пока все ползунки не займут уникальные позиции снова.
Важно отметить, что операции не изменяют относительный порядок ползунков: $$$i$$$-й ползунок слева останется $$$i$$$-м ползунком слева. Более того, ограничения на $$$x$$$ гарантируют, что все ползунки всегда остаются на дорожке, с позициями между $$$1$$$ и $$$m$$$.
Например, предположим, что начальные позиции ползунков равны $$$[1, 3, 5, 7, 9]$$$. Если пятый ползунок (на позиции $$$9$$$) переместить на позицию $$$6$$$, он толкнет четвертый ползунок с $$$7$$$ на $$$5$$$, который, в свою очередь, толкнет третий ползунок с $$$5$$$ на $$$4$$$. В результате позиции станут $$$[1, 3, \textbf{4}, \textbf{5}, \textbf{6}]$$$.
К сожалению, Антиамуни забыл порядок, в котором были применены $$$q$$$ операций. Чтобы восстановить результаты, он решает независимо смоделировать каждую из $$$q!$$$ возможных перестановок операций. Для каждой перестановки $$$p$$$ длины $$$q$$$$$$^{\text{∗}}$$$, определим $$$f_i(p)$$$ как конечную позицию $$$i$$$-го ползунка после применения операций в порядке $$$p$$$.
Другими словами, начиная с начальных позиций $$$a_1, a_2, \ldots, a_n$$$, Антиамуни сначала применяет $$$p_1$$$-ю операцию, затем $$$p_2$$$-ю операцию и так далее, пока не дойдет до $$$p_q$$$-й операции. Значение $$$f_i(p)$$$ — это позиция $$$i$$$-го ползунка в конце этой последовательности операций.
Ваша задача — вычислить для каждого ползунка $$$i$$$ ($$$1\le i\le n$$$) сумму $$$f_i(p)$$$ по всем $$$q!$$$ перестановкам $$$p$$$ операций. Поскольку результат может быть большим, выводите каждую сумму по модулю $$$10^9 + 7$$$.
$$$^{\text{∗}}$$$Перестановкой длины $$$q$$$ является массив, состоящий из $$$q$$$ различных целых чисел от $$$1$$$ до $$$q$$$ в произвольном порядке. Например, $$$[2,3,1,5,4]$$$ — перестановка, но $$$[1,2,2]$$$ не перестановка ($$$2$$$ встречается в массиве дважды) и $$$[1,3,4]$$$ тоже не перестановка ($$$q=3$$$, но в массиве встречается $$$4$$$).
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^3$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$m$$$ и $$$q$$$ ($$$1 \leq n,q \leq 5 \cdot 10^3$$$, $$$n \leq m \leq 10^9$$$) — количество ползунков, длина дорожки и количество операций соответственно.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_1 \lt a_2 \lt \ldots \lt a_n \leq m$$$) — начальные позиции каждого ползунка.
Каждая из следующих $$$q$$$ строк содержит два целых числа $$$i$$$ и $$$x$$$ ($$$1 \le i \le n$$$, $$$i \leq x \leq m - n + i$$$) — индекс ползунка, который нужно переместить, и позицию, на которую нужно переместить ползунок соответственно.
Гарантируется, что сумма $$$n$$$ и сумма $$$q$$$ по всем наборам входных данных не превосходит $$$5\cdot 10^3$$$.
Для каждого набора входных данных выведите $$$n$$$ целых чисел, где $$$i$$$-е число представляет сумму $$$f_i(p)$$$ по всем $$$q!$$$ перестановкам $$$p$$$ операций, по модулю $$$10^9 + 7$$$.
35 10 31 3 5 7 95 62 61 45 10 52 3 5 7 91 64 73 35 74 93 1000000000 31 10 2537463923 1000000003 10000000003 500000000
18 29 35 41 47 340 460 580 930 1090 6 60 199999979
В первом наборе входных данных:
Для ползунка $$$1$$$ сумма позиций $$$6$$$ различных сценариев равна $$$4+4+4+2+2+2=18$$$.
Для ползунка $$$2$$$ сумма позиций $$$6$$$ различных сценариев равна $$$5+6+6+3+6+3=29$$$.
Для ползунка $$$3$$$ сумма позиций $$$6$$$ различных сценариев равна $$$6+7+7+4+7+4=35$$$.
Для ползунка $$$4$$$ сумма позиций $$$6$$$ различных сценариев равна $$$7+8+8+5+8+5=41$$$.
Для ползунка $$$5$$$ сумма позиций $$$6$$$ различных сценариев равна $$$8+9+9+6+9+6=47$$$.