封榜是 ICPC 系列竞赛中的一个特色机制。ICPC 竞赛是实时反馈提交结果的程序设计竞赛,参赛选手与场外观众可以通过排行榜实时查看每个参赛队伍的过题数与排名。竞赛的最后一小时会进行“封榜”,即排行榜上将隐藏最后一小时内的提交的结果。赛后通过滚榜环节将最后一小时的结果(即每只队伍最后一小时的过题数)公布。
Alice 围观了一场 ICPC 竞赛的滚榜环节。本次竞赛共有
Alice 并不记得队伍被公布的顺序,也不记得最终排行榜上的排名情况,只记得每次公布后,本次被公布结果的队伍都成为了新排行榜上的第一名,以及所有队伍在封榜后一共通过了
现在 Alice 想请你帮她算算,最终排行榜上队伍的排名情况可能有多少种。
输入格式
第一行包含两个正整数
第二行包含
输出格式
仅一行一个整数表示答案。
样例一
input
3 6 1 2 1
output
5
explanation
- 最终排名:
,滚榜情况(按公布顺序,下同): 。 - 最终排名:
,滚榜情况: 。 - 最终排名:
,滚榜情况: 。 - 最终排名:
,滚榜情况: 。 - 最终排名:
,滚榜情况: 。
样例二
input
6 50 4 7 9 3 0 3
output
96
样例三
input
11 300 6 8 8 12 0 11 6 1 0 15 5
output
30140983
限制与约定
对于所有测试数据:
每个测试点的具体限制见下表:
测试点编号 | ||
---|---|---|
时间限制:
空间限制: