#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define MODN 573 int main() { string str; cin >> str; int alnum['z'-'a'+1]; memset(alnum, 0, sizeof(alnum)); for (int i = 0; i < str.size(); i++) { alnum[str[i]-'A']++; } int com[1001][1001]; memset(com, 0, sizeof(com)); for (int i = 0; i <= 1000; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) { com[i][j] = 1; }else { com[i][j] = (com[i-1][j-1]+com[i-1][j])%MODN; } } } int ans = 1; int n = str.size(); for (int i = 0; i < 'z'-'a'+1; i++) { if (alnum[i] == 0) { continue; } ans = (com[n][alnum[i]]*ans)%MODN; n -= alnum[i]; } std::cout << (ans+MODN-1)%MODN << std::endl; }