#pragma GCC optimize ("O3") #pragma GCC target ("avx") #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef unsigned long long ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } constexpr int mod=1000000007; int n,k,x; int dp[100010]; int f[100010]; const int BS=524288; int CNT,rc; char inb[BS]; inline char gchar(void){ if(CNT%BS==0){ CNT=0; rc=fread(inb,1,BS,stdin); } return CNT='0'&&read<='9')read-='0',n*=10,n+=read; else{*ptr=n;return n==0?0:!c;} c++; } *ptr=n; return 0; } inline int readint(void){int ptr;while(_readint(&ptr));return ptr;} int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); k=readint(); n=readint(); for(int i=0;i=mod); } } cout << dp[k] << "\n"; }