#pragma GCC optimize ("O3") #pragma GCC target ("avx") #include using namespace std; //INSERT ABOVE HERE const int MAX = 1<<17; const int MOD = 1e9+7; int x[MAX]; int dp[MAX*2]={}; signed main(){ int k,n; cin>>k>>n; for(int i=0;i>x[i]; for(int i=n;i=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+1]]+=(dp[l+x[i+1]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+2]]+=(dp[l+x[i+2]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+3]]+=(dp[l+x[i+3]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+4]]+=(dp[l+x[i+4]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+5]]+=(dp[l+x[i+5]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+6]]+=(dp[l+x[i+6]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; dp[l+x[i+7]]+=(dp[l+x[i+7]]+dp[l]>=MOD)?dp[l]-MOD:dp[l]; } } cout<