D. Почти римские
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Для строки, состоящей из букв «XVI», введем её значение следующим образом:

  • значение 'X' равно $$$10$$$;
  • значение 'V' равно $$$5$$$;
  • значение 'I' равно $$$1$$$ или $$$-1$$$: $$$-1$$$, если на следующей позиции находится буква 'X' или 'V'; $$$1$$$ в противном случае;
  • значение всей строки — сумма значений всех букв в ней.

Дана строка из символов «XVI?», а также $$$q$$$ запросов.

В $$$i$$$-м запросе задаются три целых числа:

  • $$$c_X~c_V~c_I$$$ — количество доступных букв 'X', 'V' и 'I', соответственно.

Какое минимальное значение строки можно получить, если заменить все знаки вопроса буквами 'X', 'V', 'I' так, чтобы количество использованных букв не превосходило количества доступных букв каждого типа?

Входные данные

В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.

В первой строке каждого набора входных данных записаны два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n, q \le 3 \cdot 10^5$$$) — длина строки и количество запросов, соответственно.

Во второй строке записана строка, состоящая из $$$n$$$ символов 'X', 'V', 'I' и/или '?'.

В $$$i$$$-й из следующих $$$q$$$ строк записаны три целых числа $$$c_X, c_V$$$ и $$$c_I$$$ ($$$0 \le c_X, c_V, c_I \le n$$$) — количество доступных букв 'X', 'V' и 'I' в $$$i$$$-м запросе.

Дополнительные ограничения на входные данные:

  • сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$;
  • сумма $$$q$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$;
  • $$$c_X + c_V + c_I$$$ больше или равно количеству символов '?' в данной строке.
Выходные данные

На каждый запрос выведите одно целое число — минимальное значение строки, которое можно получить, заменив все знаки вопроса на доступные буквы 'X', 'V' и/или 'I'.

Пример
Входные данные
4
3 3
???
3 0 0
2 3 1
0 1 2
10 7
??IV?VXIV?
0 0 4
4 4 0
1 1 2
1 1 3
1 1 4
1 2 1
2 2 0
9 5
?V????IVV
9 2 4
4 1 5
0 1 4
4 8 1
3 2 7
3 2
I?V
0 1 0
0 0 1
Выходные данные
30
9
5
25
43
36
27
25
42
53
19
17
19
33
17
9
5