#include <bits/stdc++.h>
using namespace std;
long long cnt[10], c[10], n, ans = 0, t[19];
long long dfs(int k, int l) {
  if (k == 10) {
    long long res = t[l - c[0]];
    for (int i = l - 1; i >= l - c[0]; i--) res *= i;
    for (int i = 0; i <= 9; i++) res /= t[c[i]];
    return res;
  }
  if (!cnt[k]) {
    c[k] = 0;
    return dfs(k + 1, l);
  }
  long long res = 0;
  for (int i = 1; i <= cnt[k]; i++) {
    c[k] = i;
    res += dfs(k + 1, l + i);
  }
  return res;
}
int main() {
  scanf("%I64d", &n);
  t[0] = 1;
  for (int i = 1; i <= 18; i++) t[i] = t[i - 1] * i;
  while (n) {
    cnt[n % 10]++;
    n /= 10;
  }
  ans = dfs(0, 0);
  printf("%I64d", ans);
}
