#include #define mp make_pair #define mt make_tuple #define pb push_back #define rep(i, n) for (int i = 0; i < (n); i++) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; const int INF = 1 << 29; const double EPS = 1e-9; const int MOD = 573; const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1}; string str; int N; int num[30]; int main() { cin >> str; N = str.length(); for (int i = 0; i < N; i++){ num[str[i] - 'A']++; } int sum = 1; for (int i = 1; i <= N; i++){ sum *= i; sum %=MOD; } // cout << sum << endl; int tmp = 1; for (int i = 0; i < 26; i++){ for (int j = 1; j <= num[i]; j++){ tmp *= j; tmp %= MOD; } } cout << (sum / tmp - 1) % MOD << endl; return 0; }