#include<bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
#define mp make_pair
using namespace std;
inline int _in(){
char t = getchar(); int o=0,f=0;
while(t>47&&t<58)o=o*10+t-48,t=getchar();
return f?-o:o;
}
typedef long long ll;
typedef pair<int, int> pii;
int cn[11],d[11],t;
long long ans[25];
long long C[25][25];
int main(){
long long n;
cin >>n;
while(n){
if(!cn[n%10])t++;
cn[n%10]++;
n/=10;
}
C[0][0] = 1;
for(int i = 1; i <= 20; i++){
for(int j = 0; j <= i; j++){
ll c=1;
for(int k = i; k >= i-j+1; k--) c*=k;
for(int k = 1; k <= j; k++) c/=k;
C[i][j] = c;
}
}
for(int a = 0; a <= cn[0]; a++)
for(int b = 0; b <= cn[1]; b++)
for(int c = 0; c <= cn[2]; c++)
for(int d = 0; d <= cn[3]; d++)
for(int e = 0; e <= cn[4]; e++)
for(int f = 0; f <= cn[5]; f++)
for(int g = 0; g <= cn[6]; g++)
for(int h = 0; h <= cn[7]; h++)
for(int i = 0; i <= cn[8]; i++)
for(int j = 0; j <= cn[9]; j++){
if(cn[0]&&!a) continue;
if(cn[1]&&!b) continue;
if(cn[2]&&!c) continue;
if(cn[3]&&!d) continue;
if(cn[4]&&!e) continue;
if(cn[5]&&!f) continue;
if(cn[6]&&!g) continue;
if(cn[7]&&!h) continue;
if(cn[8]&&!i) continue;
if(cn[9]&&!j) continue;
int t = a+b+c+d+e+f+g+h+i+j, s=t;
long long m=1;
if(a){
m *= C[t-1][a]; t-=a;
}
m *= C[t][b]; t-=b;
m *= C[t][c]; t-=c;
m *= C[t][d]; t-=d;
m *= C[t][e]; t-=e;
m *= C[t][f]; t-=f;
m *= C[t][g]; t-=g;
m *= C[t][h]; t-=h;
m *= C[t][i]; t-=i;
m *= C[t][j]; t-=j;
ans[s] += m;
}
for(int i = 0; i<21; i++)ans[0] += ans[i];
cout<<ans[0];
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbmxpbmUgaW50IF9pbigpewoJY2hhciB0ID0gZ2V0Y2hhcigpOyBpbnQgbz0wLGY9MDsKCXdoaWxlKHQ+NDcmJnQ8NTgpbz1vKjEwK3QtNDgsdD1nZXRjaGFyKCk7CglyZXR1cm4gZj8tbzpvOwp9CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKaW50IGNuWzExXSxkWzExXSx0Owpsb25nIGxvbmcgYW5zWzI1XTsKbG9uZyBsb25nIENbMjVdWzI1XTsKCmludCBtYWluKCl7Cglsb25nIGxvbmcgbjsKCWNpbiA+Pm47Cgl3aGlsZShuKXsKCQlpZighY25bbiUxMF0pdCsrOwoJCWNuW24lMTBdKys7CgkJbi89MTA7Cgl9CglDWzBdWzBdID0gMTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gMjA7IGkrKyl7CgkJZm9yKGludCBqID0gMDsgaiA8PSBpOyBqKyspewoJCQlsbCBjPTE7CgkJCWZvcihpbnQgayA9IGk7IGsgPj0gaS1qKzE7IGstLSkgYyo9azsKCQkJZm9yKGludCBrID0gMTsgayA8PSBqOyBrKyspIGMvPWs7CgkJCUNbaV1bal0gPSBjOwoJCX0KCX0KCWZvcihpbnQgYSA9IDA7IGEgPD0gY25bMF07IGErKykKCWZvcihpbnQgYiA9IDA7IGIgPD0gY25bMV07IGIrKykKCWZvcihpbnQgYyA9IDA7IGMgPD0gY25bMl07IGMrKykKCWZvcihpbnQgZCA9IDA7IGQgPD0gY25bM107IGQrKykKCWZvcihpbnQgZSA9IDA7IGUgPD0gY25bNF07IGUrKykKCWZvcihpbnQgZiA9IDA7IGYgPD0gY25bNV07IGYrKykKCWZvcihpbnQgZyA9IDA7IGcgPD0gY25bNl07IGcrKykKCWZvcihpbnQgaCA9IDA7IGggPD0gY25bN107IGgrKykKCWZvcihpbnQgaSA9IDA7IGkgPD0gY25bOF07IGkrKykKCWZvcihpbnQgaiA9IDA7IGogPD0gY25bOV07IGorKyl7CgkgICAgaWYoY25bMF0mJiFhKSBjb250aW51ZTsgCgkgICAgaWYoY25bMV0mJiFiKSBjb250aW51ZTsgCgkgICAgaWYoY25bMl0mJiFjKSBjb250aW51ZTsgCgkgICAgaWYoY25bM10mJiFkKSBjb250aW51ZTsgCgkgICAgaWYoY25bNF0mJiFlKSBjb250aW51ZTsgCgkgICAgaWYoY25bNV0mJiFmKSBjb250aW51ZTsgCgkgICAgaWYoY25bNl0mJiFnKSBjb250aW51ZTsgCgkgICAgaWYoY25bN10mJiFoKSBjb250aW51ZTsgCgkgICAgaWYoY25bOF0mJiFpKSBjb250aW51ZTsgCgkgICAgaWYoY25bOV0mJiFqKSBjb250aW51ZTsKCQoJaW50IHQgPSBhK2IrYytkK2UrZitnK2graStqLCBzPXQ7Cglsb25nIGxvbmcgbT0xOwoJaWYoYSl7CgkJbSAqPSBDW3QtMV1bYV07IHQtPWE7Cgl9CgltICo9IENbdF1bYl07IHQtPWI7CgltICo9IENbdF1bY107IHQtPWM7CgltICo9IENbdF1bZF07IHQtPWQ7CgltICo9IENbdF1bZV07IHQtPWU7CgltICo9IENbdF1bZl07IHQtPWY7CgltICo9IENbdF1bZ107IHQtPWc7CgltICo9IENbdF1baF07IHQtPWg7CgltICo9IENbdF1baV07IHQtPWk7CgltICo9IENbdF1bal07IHQtPWo7CglhbnNbc10gKz0gbTsKICAgICAgIH0KICAgICAgIGZvcihpbnQgaSA9IDA7IGk8MjE7IGkrKylhbnNbMF0gKz0gYW5zW2ldOwogICAgICAgY291dDw8YW5zWzBdOwp9