#include <bits/stdc++.h>
#define int __int128
using namespace std;
const int N = 1e6 + 10;
const int mod = 9223372036854775837;
int ksm (int a, int n) {
int ans = 1;
while (n) {
if (n % 2) ans = ans * a % mod;
a = a * a % mod;
n /= 2;
}
return ans;
}
char s[N];
int len, now[N], ans, jc[N];
signed main() {
scanf("%s", s + 1);
len = strlen(s + 1);
jc[0] = 1;
for (int i = 1; i <= 55; ++ i ) jc[i] = jc[i - 1] * i % mod;
for (int i = 1; i <= len; ++ i ) ++ now[s[i] - '0'];
for (int i = 1; i <= len; ++ i ) {
for (int j = 0; j < s[i] - '0'; ++ j ) {
if (now[j]) {
int res = jc[len - i];
-- now[j];
for (int k = 0; k < 10; ++ k ) res = res * ksm (jc[now[k]], mod - 2);
ans = (ans + res) % mod;
++ now[j];
}
}
-- now[s[i] - '0'];
}
long long ss = ans;
printf("%lld\n", ss);
return 0;
}