#P17572. PM4445 多边形分割

PM4445 多边形分割

题目描述

给定一个有 nn 条边的凸多边形。你可以进行若干次切割,每次选择两个顶点并用一条线段连接它们,该线段必须把当前的某一个多边形恰好分成两个多边形。

最终要求恰好得到 kk 个多边形。多边形的每个顶点都是互相可区分的,切割的先后顺序不影响方案是否相同。

例如,一个四边形若不切割有 11 种方案;若切成两个多边形,则两条对角线分别对应一种方案,因此有 22 种方案。

请计算不同切割方案的数量。答案可能很大,请对 10910^9 取模。如果无法把多边形切成恰好 kk 个部分,输出 1-1

输入格式

输入一行两个整数 n,kn,k

输出格式

输出一个整数:若存在合法方案,输出方案数对 10910^9 取模后的结果;否则输出 1-1

样例 1

输入

4 2

输出

2

样例 2

输入

100 1

输出

1

样例 3

输入

6 4

输出

14

样例 4

输入

3 4

输出

-1

数据范围

  • 3n1003\le n\le 100
  • 1k1001\le k\le 100

说明

  • 顶点彼此可区分。例如,把五边形切成 33 个三角形共有 55 种不同方案,而不是 11 种。
  • 每次切割只能把一个现有多边形分成两个多边形。