#239. 集合的划分

集合的划分

集合的划分

题目描述

设 S 是一个具有 n 个元素的集合,S=a1,a2,,anS = \langle a_1, a_2, \ldots, a_n \rangle,现将 S 划分成 k 个满足下列条件的子集合 S1,S2,,SkS_1, S_2, \ldots, S_k,且满足:

  1. SiS_i \ne \varnothing
  2. SiSj=S_i \cap S_j = \varnothing (1i,jk,ij1 \le i, j \le k, i \ne j);
  3. S1S2Sk=SS_1 \cup S_2 \cup \ldots \cup S_k = S

则称 S1,S2,,SkS_1, S_2, \ldots, S_k 是集合 S 的一个划分。它相当于把 S 集合中的 n 个元素 a1,a2,,ana_1, a_2, \ldots, a_n 放入 k 个 (0<kn<300 < k \le n < 30) 无标号的盒子中,使得没有一个盒子为空。请你确定 n 个元素 a1,a2,,ana_1, a_2, \ldots, a_n 放入 k 个无标号盒子中去的划分数 S(n,k)S(n,k)

输入

给出 n 和 k。

输出

n 个元素 a1,a2,,ana_1, a_2, \ldots, a_n 放入 k 个无标号盒子中去的划分数 S(n,k)S(n,k)

样例输入

10 6

样例输出

22827