Задача  Woods

Фермеры - герои задач Garden и NewGarden снова получили в совместное  владение сад прямоугольной формы размером 2*N,  разделенный тропинками на одинаковые квадратные участки 1*1. На этот раз было решено выращивать  фруктовые дерева. У фермеров имеется достаточное количество саженцев K видов, среди которых есть мешающие друг другу, если их сажать на соседних (имеющих общую сторону) участках. Чтобы фруктовые деревья плодоносили,  на каждом участке нужно сажать ровно  по одному дереву, и  на  соседних участках не должны расти "мешающие" деревья. Помогите фермерам подсчитать количество способов посадки деревьев так, чтобы они все плодоносили.

Технические условия. Программа  Woods читает с клавиатуры через пробелы целые числа  N и К  (1<=N<=100, 2<=K<=5),  далее количество пар видов деревьев, которые нельзя сажать на соседних участках S (0<=S<K*(K+1)/2), далее S пар номеров видов деревьев. Никакая пара не повторяется. Возможно, что одинаковые деревья мешают друг другу.   Программа выводит на экран   искомое количество способов по модулю 2010.

Примеры

Ввод 3 2 0

Вывод 64

Ввод 2 4 4 2 2 1 2 1 3 3 4

Вывод 37

© LIKT 1998-2018