#include #include #include #include #include #include #include using namespace std; typedef unsigned int uint; typedef unsigned long long LL; #define FOR(k,a,b) for(uint k(a); k < (b); ++k) #define REP(k,a) for(uint k=0; k < (a); ++k) const int MOD = 1e9 + 7; LL invmod(LL a) { int p = MOD-2; LL res = 1; a %= MOD; while(p) { if(p&1) { res *= a; res %= MOD; } a *= a; a %= MOD; p >>= 1; } return res; } LL calc(int n,int x,LL m, const vector& v) { LL res = 0, tmp; --m; int u = m%MOD, d = 0; LL act = 1; REP(i,x) { tmp = act * v[x-1-i]; tmp %= MOD; res += tmp; if (res >= MOD) res -= MOD; if(d v; scanf("%d",&T); assert(T>0 && T<11); while(T--) { scanf("%d %d %lld",&n,&x,&m); assert(00 && tmp<=1e18); tmp%=MOD; v[i]=tmp; } res = calc(n,x,m,v); printf("%lld\n",res); } return 0; }