#include <bits/stdc++.h>
using namespace std;

#define DragonBui 0
#define Task "Test"
#define int long long
#define el '\n'
#define cnt_bit_1 __builtin_popcountll
#define float double
#define IO freopen(Task".inp","r",stdin); freopen(Task".out","w",stdout);
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back

const int N=2e5+5;
const int INF=1e18;
const int MOD=1e9+7;

int n , cL;
string s;
int f[15] , cnt[10];
int ans = 0;

void precompute()
{
    f[0] = 1;
    for(int i = 1; i <= 13; i++) f[i] = f[i - 1] * i;
}

int calc()
{
    int id = f[cL];
    for(int i = 0; i <= 9; i++) id /= f[cnt[i]];

    int w = 0;
    if(cnt[0] > 0)
    {
        w = f[cL - 1];
        cnt[0]--;
        for (int i = 0; i <= 9; i++) w /= f[cnt[i]];
        cnt[0]++;
    }
    return id - w;
}

int cntles()
{
    int res = 0;
    vector<int> cur_cnt(10);
    for(int i = 0; i <= 9; i++) cur_cnt[i] = cnt[i];

    for(int i = 0; i < cL; i++)
    {
        int cdr = s[i] - '0';

        for(int d = 0; d < cdr; d++)
        {
            if(i == 0 && d == 0) continue;
            if(cur_cnt[d] > 0)
            {
                cur_cnt[d]--;
                int id = f[cL - 1 - i];
                for (int x = 0; x <= 9; x++) id /= f[cur_cnt[x]];
                res += id;
                cur_cnt[d]++;
            }
        }

        if(cur_cnt[cdr] > 0) cur_cnt[cdr]--;
        else break;

        if(i == cL - 1) res++;
    }
    return res;
}

void backtrack(int digit, int rem, int sum, int nw1)
{
    if(rem == 0)
    {
        if(sum > 0 && sum % cL == 0 && nw1 % sum == 0)
        {
            if(cL < n) ans += calc();
            else ans += cntles();
        }
        return;
    }

    if(digit > 9) return;

    for(int k = 0; k <= rem; k++)
    {
        cnt[digit] = k;

        int nw = nw1;
        if(k > 0)
        {
            if(digit == 0) nw = 0;
            else
            {
                for(int i = 0; i < k; i++) nw *= digit;
            }
        }

        backtrack(digit + 1, rem - k, sum + digit * k, nw);
        cnt[digit] = 0;
    }
}

signed main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    //IO

    precompute();

    cin >> s;

    n = s.size();

    for(int L = 1; L <= n; L++)
    {
        cL = L;
        backtrack(0, L, 0, 1);
    }

    cout << ans;

    return (DragonBui);
}

/// Long Bùi
/// TrQuocann - TH & THCS & THPT SAO VIET - 10a1
