#include <bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
long long arr[10000],dp[10050],n,m,minn=10000;
int main() {
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>arr[i];
minn=min(minn,arr[i]);
}
dp[0]=1;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
int l=2;
if(i<arr[j]){
continue;
}
dp[i]=(dp[i-arr[j]]+dp[i])%mod;
dp[i]/=l;
}
}
cout<<dp[m];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtb2Q9MWU5Kzc7CmxvbmcgbG9uZyBhcnJbMTAwMDBdLGRwWzEwMDUwXSxuLG0sbWlubj0xMDAwMDsKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKDApLGNvdXQudGllKDApOwoJY2luPj5uPj5tOwoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCWNpbj4+YXJyW2ldOwoJCW1pbm49bWluKG1pbm4sYXJyW2ldKTsKCX0KCWRwWzBdPTE7Cglmb3IoaW50IGk9MTtpPD1tO2krKyl7CgkJZm9yKGludCBqPTE7ajw9bjtqKyspewoJCQlpbnQgbD0yOwoJCQlpZihpPGFycltqXSl7CgkJCQljb250aW51ZTsKCQkJfQoJCQlkcFtpXT0oZHBbaS1hcnJbal1dK2RwW2ldKSVtb2Q7CgkJCWRwW2ldLz1sOwoJCX0KCX0KCWNvdXQ8PGRwW21dOwoJcmV0dXJuIDA7Cn0=