#define _USE_MATH_DEFINES #include #include #include #include #include //#include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< ///////// typedef long long LL; typedef long double LD; ///////// using namespace::std; ///////// const LL mod = 7+(int)1e9; const int kmax = 1000001; LL kai[kmax]; //LL invkai[kmax]; LL ans[100000]; LL powmod(int n,int p){ //a^p LL ans = 1; LL mel = n; while( p ){ if( p%2 ){ ans = (ans * mel)%mod; } p /= 2; mel = (mel * mel)%mod; } return ans; } LL ccc(int n,int k){ LL ans; if( n < k){ return 0; } ans = (((kai[n]*powmod(kai[n-k],mod-2))%mod)*powmod(kai[k],mod-2))%mod; return ans; } void init(){ kai[0] = 1; //invkai[0] = 1; for(int i=1;i>T; char f,a; rep(i,T){ cin>>f>>a>>N>>a>>K>>a; if(f=='C'){ ans[i] = ccc(N,K); }else if( f=='P'){ ans[i] = ppp(N,K); }else{ ans[i] = hhh(N,K); } } rep(i,T){ P(ans[i]); } return 0; }