#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000000 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 K,MM; cin>>K>>MM; long long N; cin>>N; vector> T(K*K,vector(K*K,0LL)); for(int i=0;i>p>>q>>r; p--,q--,r--; T[p*K+q][q*K+r]++; } matrix M(K*K,K*K); M.set_value(T); M = matrix_beki(M,N-2); vector> X(1,vector(K*K,0LL)); for(int i=0;i