#include <bits/stdc++.h>
using namespace std;
int have[15];
int ku[15];
long long ans = 0;
long long power[20];
void init() {
  power[0] = 1;
  for (long long i = 1; i < 20; i++) power[i] = power[i - 1] * i;
}
void dfs(int now) {
  if (now >= 10) {
    int tot = 0;
    for (int i = 0; i < 10; i++) tot += ku[i];
    for (int i = 1; i < 10; i++) {
      if (ku[i]) {
        ku[i]--;
        long long tmp = 1;
        for (int j = 0; j < 10; j++) tmp *= power[ku[j]];
        ans += power[tot - 1] / tmp;
        ku[i]++;
      }
    }
    return;
  }
  for (int i = 1; i <= have[now]; i++) {
    ku[now] = i;
    dfs(now + 1);
  }
  if (!have[now]) dfs(now + 1);
}
int main() {
  init();
  long long n;
  scanf("%lld", &n);
  while (n) {
    have[n % 10]++;
    n /= 10;
  }
  dfs(0);
  printf("%lld\n", ans);
  return 0;
}
