#include long long int modpow(long long int a, long long int n, long long int p) { long long int res = 1; for (; n > 0; n /= 2, a = a * a % p) if (n % 2 > 0) res = res * a % p; return res; } long long int fact[200005]; char s[200005]; long long int cnt[10]; int main() { scanf("%s", s); long long int i; for (i = 0; i < 10; i++) cnt[i] = 0; for (i = 0; s[i] != '\0'; i++) cnt[s[i] - '0']++; const long long int p = 998244353; fact[0] = 1; for (i = 1; i < 200005; i++) fact[i] = fact[i - 1] * i % p; long long int v1, v2, c; c = 0; for (i = 0; i < 10; i++) c += cnt[i]; v1 = fact[c]; for (i = 0; i < 10; i++) v1 = v1 * modpow(fact[cnt[i]], p - 2, p) % p; if (cnt[0] > 0) { v2 = fact[c - 1]; v2 = v2 * modpow(fact[cnt[0] - 1], p - 2, p) % p; for (i = 1; i < 10; i++) v2 = v2 * modpow(fact[cnt[i]], p - 2, p) % p; } else v2 = 0; v1 = (v1 - v2 + p) % p; printf("%lld\n", v1); return 0; }