Зачет в третьей параллели

Ограничение по времени: 1.000 секунд

Ограничение по памяти: 100.000 мегабайт

Один преподаватель придумал новый формат проведения зачета.

Илья собирается сдавать зачет. Илья достаточно хорошо представляет уровень своих знаний по каждой теме, и уверен, что сдавая i-й блок теорией, получит оценку xi, а сдавая его же практикой - оценку yi. Помогите ему определить, какие из блоков (не менее a) ему следует сдавать теорией, а какие (не менее b) - практикой, чтобы набрать максимально возможный суммарный балл за зачет.

Формат входных данных

В первой строке входных данных через пробел перечислены три целых числа n, a и b - общее количество тем, а также минимальное количество тем, которые необходимо сдать теорией и практикой, соответственно (1 ⩽ n ⩽ 2 * 105; 0 ⩽ a,b ⩽ n). Гарантируется, что a + b ⩽ n.

Во второй строке через пробел перечислены n целых чисел xi - оценки, которые получит Илья, если будет сдавать блоки, отвечая на теоретические вопросы (0 ⩽ xi ⩽ 100).

В третьей строке так же перечислены n целых чисел yi - оценки, которые он получит, решая практические задачи (0 ⩽ yi ⩽ 100).

Формат выходных данных

В первой строке выведите одно целое число C - максимальную суммарную оценку, которую Илья может получить за зачет.

Во второй строке выведите n разделенных пробелами символов, i-й из которых равен T, если Илье стоит отвечать в i-м блоке теорию, и P, если практику. Хотя бы a символов должны быть равны T, и хотя бы b равны P.

Пример

input output
4 1 1
10 30 50 70
80 60 40 20
260
P P T T
4 1 1
30 40 60 90
10 25 50 85
215
T T T P
4 2 1
0 17 70 13
2 21 55 99
190
T P T P
Войдите, что бы отправлять решения