У фермера Джона имеется N (2 <= N <=15) коров трех различных пород:
Holsteins, Jerseys, Guernseys.
Однако ФД помнит о породах специфически, а именно он помнит список из K
(1 <= K <= 50) отношений между парами коров. Например, он может помнить,
что коровы 1 и 2 одинаковой породы, или, что коровы 1 и 5 разной породы.
Вам дан этот список ФД, помогите ему вычислить количество различных
назначений пород его коровам. Это число может равняться нулю, если
его список содержит противоречивую информацию.
PROBLEM NAME: assign
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа: N и K.
* Строки 2..1+K: Каждая строка описывает отношение между парой коров
x и y (1 <= x,y <= N, x != y) в одной из форм
"S x y", означающей, что коровы x и y одной и той же породы, или
"D x y", означающей, что коровы x и y различных пород.
Формат выходных данных
* Строка 1: Количество возможных назначений пород.
Примечание
Следующие 6 назначений возможны для первых трех коров:
HHG, HHJ, GGH, GGJ, JJH, JJG.
В каждом из этих вариантов мы имеем 3 возможных назначения
для 4-ой коровы, поэтому и получается всего 18 вариантов.