小K的雕塑
题号:NC23924
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

小K有n个雕塑,每个雕塑上有一个整数
若集合T中的每一个元素在n个雕塑上都能找得到,则称这个集合为一个优秀的集合
小K想知道所有大小<=k优秀的集合的价值和是多少
一个优秀的集合的价值可以用来表示
特别的F(∅)=1, |∅|=0
即求

输入描述:

两个整数n,k,分别表示雕塑的数量与集合大小的上限 
接下来n个整数表示第i个雕塑上的数字a_i是多少

输出描述:

一行表示所有大小<=k优秀集合的权值和
示例1

输入

复制
3 0
1 2 3

输出

复制
1
示例2

输入

复制
3 1
1 2 3

输出

复制
7
示例3

输入

复制
3 2
1 2 3

输出

复制
18
示例4

输入

复制
3 3
1 2 3

输出

复制
24
示例5

输入

复制
8 1
1 6 35 45 65 3 56 8

输出

复制
220

备注:

的数据满足k=1
的数据满足k=n
以上两个部分包含在的数据中,但不包含在前的数据中
对于前的数据,满足
对于的数据,满足
由于答案可能过大请对109+7取模后输出