Фермер Джон пытается научить своих коров читать, дав им множество из n дощечек, обычно используемых дошкольниками. Каждая дощечка имеет слово и рисунок на каждой стороне. Например, одна сторона может иметь слово 'cat' и картинку кота на одной стороне и слово 'dog' и картинку собаки на другой стороне.
Когда дощечки лежат на земле, видно n слов. Переворачивая таблички можно получать различные множества из n слов. Чтобы помочь коровам запомнить буквы, ФД хочет подготовить некоторое количество деревянных блоков, на каждом из которых выписана одна буква алфавита. Он хочет подготовить достаточное количество блоков с каждой буквой, для того чтобы вне зависимости от того, какое множество из n слов показывается, коровы могли составить все слова используя эти блоки. Например, если n = 3 и на табличках представлены слова 'box', 'cat', 'car', коровам нужно как минимум 1 'b', 1 'o', 1 'x', 2 'c', 2 'a', 1 't', 1 'r'.
Помогите ФД определить минимальное количество блоков для каждой буквы алфавита, которые он должен обеспечить, чтобы вне зависимости от того какой стороной вверх направлены таблички, можно было составить все n видимых слов.
Первая строка содержит целое число n (1 ≤ n ≤ 100).
Каждая из следующих n строк содержит два слова, разделённых одиночным пробелом, задавая два слова на противоположных сторонах дощечки. Каждое слово – строка не более чем из 10 маленьких английских букв.
Выведите 26 строк. Первая выходная строка должна содержать требуемое количество букв ‘a’. Следующая строка должна содержать требуемое количество букв ‘b’. И так далее.
В этом примере n = 3, получается 2^3
= 8 способ повернуть вверх слова:
У нас есть достаточно блоков для каждой буквы алфавита, так что мы сможем собрать все три слова, вне зависимости от способа поворачивания слов вверх.