#507. 集合的划分(subset)

集合的划分(subset)

Background

Special for beginners, ^_^

Description

SS 是一个具有 nn 个元素的集合,Sa1a2anS={a_1,a_2,\dots,a_n},现将 SS 划分成 kk 个满足下列条件的子集合 S1S2SkS_1,S_2,\dots,S_k,且满足:

  1. SiϕS_i\neq \phi

  2. $S_i \cap S_j = \phi\; (1\le i, \; j\le k, \; i\neq j)$

  3. S1S2S3Sk=SS_1 \cup S_2 \cup S_3 \cup \cdots \cup S_k = S

则称 S1S2SkS_1,S_2,\dots,S_k 是集合 SS 的一个划分。它相当于把 SS 集合中的 nn 个元素 a1a2ana_1,a_2,\dots,a_n 放入 kk(0<kn<30)(0\lt k \le n\lt 30) 无标号的盒子中,使得没有一个盒子为空。

请你确定 nn 个元素 a1a2ana_1,a_2,\dots,a_n 放入 kk 个无标号盒子中去的划分数 S(nk)S(n,k)

Format

Input

输入两个整数 nnkk,均小于 30。

Output

输出一个整数,为划分数。

Samples

23 7
4382641999117305

Limitation

1s, 1024KiB for each test case.