#include <bits/stdc++.h>
using namespace std;
long long cnt[10];
string s;
long long fact[19];
long long ans = 0;
int nono;
vector<long long> vec;
void call(int pos, int sum) {
  if (pos == 10) {
    long long ret = fact[sum];
    for (int i = 0; i < vec.size(); i++) ret /= fact[vec[i]];
    ans += ret;
    return;
  }
  if (cnt[pos] == 0) {
    call(pos + 1, sum);
    return;
  }
  for (int i = 0; i <= cnt[pos]; i++) {
    if (i == 0) {
      if (pos != nono) continue;
    }
    vec.push_back(i);
    call(pos + 1, sum + i);
    vec.pop_back();
  }
  return;
}
int main() {
  fact[0] = 1;
  for (long long i = 1; i <= 18; i++) fact[i] = i * fact[i - 1];
  cin >> s;
  for (int i = 0; i < s.size(); i++) cnt[s[i] - '0']++;
  for (int i = 1; i <= 9; i++) {
    if (cnt[i]) {
      cnt[i]--;
      nono = i;
      call(0, 0);
      cnt[i]++;
    }
  }
  cout << ans << endl;
  return 0;
}
