U543669 集合的划分(set)

题目描述

设 $S$ 是一个具有 $n$ 个元素的集合,$S= \{ a_1,a_2, \cdots,a_n \}$,现将 $S$ 划分成 $k$ 个满足下列条件的子集合 $S_1, S_2, \cdots S_k$,且满足: $(1)S_i \not = \varnothing $(空集); $(2)S_i \cap S_j = \varnothing (1≤i,j≤k,i ≠j);$ $(3) S_1 \cup S_2 \cup S_3 \cup \cdots \cup S_k = S,$ 则称 $S_1,S_2, \cdots ,S_k$是集合 $S$ 的一个划分。它相当于把 $S$ 集合中的 $n$ 个元素 $a_1,a_2, \cdots,a_n$ 放人 $k$ 个无标号的盒子中,使得没有一个盒子为空。 编程,计算划分数$S(n,k),0 < k≤n < 30$。

输入格式

输入一行两个数,表示 $n$ 和 $k$。

输出格式

输出一行一个数,表示 $S(n,k)$ 的值。