#include #include #include #include #include #include #include #include #include #include using namespace std; vector> comb; void combinations(long long n, long long modc=573){ comb.resize(n+1); for (long long i=0; i<=n; i++){ comb[i].resize(n+1); comb[i][0] = 1; } for (long long i=1; i <= n; i++){ for (long long j=1; j <= i; j++){ comb[i][j] = (comb[i-1][j-1] + comb[i-1][j]) % modc; } } } int main(){ combinations(1000); long long tot=0, ans=1, N; string S; cin >> S; N = S.size(); vector cnt(26); for (auto x : S) cnt[x-'A']++; for (int i=0; i<26; i++){ ans *= comb[N-tot][cnt[i]]; ans %= 573; tot += cnt[i]; } cout << (ans+572) % 573 << endl; return 0; }