class C{ // public: long[] fac, inv; long mod=1_000_000_000+7; this(int n){ fac.length=n+1; fac[0]=fac[1]=1; for(int i=2; i<=n; i++) fac[i]=i*fac[i-1]%mod; inv.length=n+1; for(int i=0; i<=n; i++) inv[i]=pow(fac[i], mod-2); } long pow(long a, long x){ if(x==0) return 1; else if(x==1) return a; else if(x%2==0) return pow(a*a%mod, x/2); else return a*pow(a, x-1)%mod; } long comb(int n, int k){ if(n