Дан массив a1, a2, ..., an и m множеств S1, S2, ..., Sm индексов элементов этого массива. Введем обозначение, Sk = {Sk, i} (1 ≤ i ≤ |Sk|), другими словами Sk, i — это некоторый элемент множества Sk.
В задаче нужно ответить на q запросов. Каждый запрос имеет один из следующих типов:
- Найти сумму элементов с индексами из множества Sk:
. Формат запроса — «? k». - Добавить число x ко всем элементам с индексами из множества Sk: aSk, i заменяется на aSk, i + x для всех i (1 ≤ i ≤ |Sk|). Формат запроса — «+ k x».
После каждого запроса первого типа, выведите искомую сумму.
Выходные данные
После каждого запроса первого типа, выведите искомую сумму в отдельной строке.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 3 5 5 -5 5 1 -4 2 1 2 4 2 1 4 5 2 2 5 ? 2 + 3 4 ? 1 + 2 1 ? 2
|
-3
4
9
|