#include #define rep(i,n) for (int (i)=0;(i)<(n);++(i)) using namespace std; typedef long long ll; template inline void chmax(T &a, T b) { a=max(a,b); } template inline void chmin(T &a, T b) { a=min(a,b); } const int INF = 1e9+5; const ll LINF = 1LL<<60; template class Modular { public: long long val; Modular(long long v=0) : val(v%MOD) { if (val<0) val+=MOD; } long long getmod() { return MOD; } Modular operator-() const { return val>0 ? MOD-val : 0; } Modular& operator++() { *this+=1; return *this; } Modular& operator--() { *this-=1; return *this; } Modular operator++(int) { long long t=val; *this+=1; return t; } Modular operator--(int) { long long t=val; *this-=1; return t; } Modular operator+(const Modular &r) const { return Modular(*this)+=r; } Modular operator-(const Modular &r) const { return Modular(*this)-=r; } Modular operator*(const Modular &r) const { return Modular(*this)*=r; } Modular operator/(const Modular &r) const { return Modular(*this)/=r; } Modular& operator+=(const Modular &r) { val+=r.val; if (val>=MOD) val-=MOD; return *this; } Modular& operator-=(const Modular &r) { val-=r.val; if (val<0) val+=MOD; return *this; } Modular& operator*=(const Modular &r) { val*=r.val; val%=MOD; return *this; } Modular& operator/=(const Modular &r) { long long a=r.val, m=MOD, u=0, v=1; while (a!=0) { long long t=m/a; m-=t*a; swap(a,m); u-=t*v; swap(u,v); } assert(m==1); val = (val*u % MOD + MOD) % MOD; return *this; } bool operator==(const Modular &r) { return this->val == r.val; } bool operator!=(const Modular &r) { return this->val != r.val; } friend ostream& operator<<(ostream& os, const Modular &x) { return os << x.val; } friend Modular pow(const Modular &a, long long n) { assert(n>=0); Modular x=a, t=1; while (n>0) { if (n&1) t*=x; x*=x; n>>=1; } return t; } }; template class BiCoef { private: vector _fac, _finv, _inv; public: BiCoef() {} BiCoef(int n) { init(n); } void init(int n) { _fac.resize(n,1); _finv.resize(n,1); _inv.resize(n,1); int MOD = _fac[0].getmod(); _inv[0] = 0; for (int i=2; i<=n; ++i) { _fac[i] = _fac[i-1]*i; _inv[i] = -_inv[MOD%i]*(MOD/i); _finv[i] = _finv[i-1]*_inv[i]; } } T c(int n, int k) const { if (n; BiCoef bc; int main() { int t; cin>>t; bc.init(2100000); rep(q,t) { string s; cin>>s; char c=s[0]; int i; for (i=2; i