#include using namespace std; typedef long long ll; typedef long double ld; #define REP(i, n) for (int i = 0; i < (n); ++i) #define REPR(i, n) for (int i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (int i = m; i < n; ++i) #define FORR(i, m, n) for (int i = m; i >= n; --i) #define ALL(v) (v).begin(),(v).end() templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> c(nmax,vector(nmax,-1)); ll com(int a,int b){ if(c[a][b]>=0){ return c[a][b]; } if(a==b||b==0){ return 1; } if(a> s; int n=s.size(); vector p(26); REP(i,n){ p[s[i]-'A']++; } ll ans=1; REP(i,26){ (ans*=com(n,p[i]))%=mod; n-=p[i]; } cout << (ans-1+mod)%mod << endl; }