Фермер Джон заинтересован в лучшем общении со своими собратьями-коровами, поэтому он
решил, что он выучит язык мычания!
Язык Moo на самом деле очень похож на английский, но более минималистичный. Там
всего четыре типа слов: существительные, переходные глаголы, непереходные глаголы и
союзы. Каждые два последовательных слова должны быть разделены пробелом. Там
также всего два вида знаков препинания: точки и запятые. Когда точка или
запятая ставится после слова, она ставится сразу после слова, а затем
с последующим пробелом, если рядом появляется другое слово.
Предложение должно соответствовать одному из следующих форматов:
- Тип 1: существительное + непереходный глагол.
- Тип 2: существительное + переходный глагол + существительное(а). В частности, хотя бы одно существительное
должен следовать за переходным глаголом, и перед каждым словом должна стоять запятая.
следующее существительное, кроме первого следующего существительного.
Два предложения можно соединить в сложносочиненное, если поставить союз
между ними. Полученное сложносочиненное предложение не может быть далее объединено с
другими предложениями или другими сложными предложениями. Каждое предложение (или составное
предложение, если два предложения соединены) должно заканчиваться точкой.
У фермера Джона есть банк слов из \(N\) слов, \(C\) запятых и \(P\) точек.
(\(1 \leq P,C\le N \leq 10^3\)). Он может использовать слово или знак препинания столько раз
раз, сколько это появляется в банке слова. Помогите ему вывести последовательность
предложений, содержащую максимально возможное количество слов.
Каждый входной файл содержит \(T\) (\(1\le T\le 100\)) подтестов.
ФОРМАТ ВВОДА (с клавиатуры/стандартного ввода):
Первая строка содержит
\(T\), количество подтестов. Каждый подтест указывает
следующее:
Первая строка состоит из трех целых чисел: \(N\), \(C\) и \(P\).
Следующие \(N\) строк будут состоять из двух подстрок, разделённых одиночным пробелом.
Первая подстрока будет само слово, которое может использовать FJ (строка не менее 1 и не более 10 строчных букв
буквы), а вторая подстрока будет одной из следующих: noun,
transitive-verb, intransitive-verb, conjunction, ( соответсвенно существительное,
переходный глагол, непереходный глагол или союз) обозначающие тип этого
слова. Возможно, одно и то же слово встречается более одного раза в банке слов FJ, но
оно всегда будет иметь один и тот же тип при каждом появлении.
ФОРМАТ ВЫВОДА (на терминал / стандартный вывод):
В первой строке выведите максимально возможное количество слов.
Во второй строке выведите любую последовательность предложений с максимально возможным
числом слов. Любая допустимая последовательность будет принята.
Грейдер чувствителен к пробелам, поэтому убедитесь, что не выводятся
лишние пробелы, особенно в конце каждой строки.
Ваш ответ: