#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000 int beki(int a,int b){ int x = 1; while(b!=0){ if(b&1){ x=mod(x*a); } a=mod(a*a); b>>=1; } return x; } struct matrix{ vector> value; matrix(int height,int width){ value.resize(height,vector(width,0)); if(height==width){ for(int i=0;i(width,0)); for(int i=0;i> &V){ value = V; } void set_value(initializer_list list){ auto it = list.begin(); for(int i=0;i>=1; } return R; } int main(){ int M,K; cin>>M>>K; vector> X(M,vector(M,0)); for(int i=0;i> Y(1,vector(M,0)); Y[0][0] = 1; matrix Q(1,M); Q.set_value(Y); P = matrix_beki(P,K); Q = matrix_multiple(Q,P); cout<