Разбить граф на подграф удалением минимум узлов

Здравствуйте, пытаюсь решить такую задачку из лабораторной работы:

"Для заданного орграфа определить минимальный набор узлов, удаление которых (вместе с входящими или исходящими рёбрами) приведёт к разделению исходного графа на заданное число подграфов. "

Вообще, тема лабораторной: "Программирование перебором".

На сколько я понял, мне надо просто брать вначале одну точку и удалять и смотреть что получится, потом брать две, потом три и так далее. Но, к примеру, если я возьму 10 точек, то сложность может быть уже 10!, это больше 3,5 миллионов комбинаций перебора, что для lisp, на сколько мне известно, слишком. Скажите, как по-другому можно это решить?