#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cout.tie(0);
    cin.tie(0);
    string s;
    getline (cin,s);
    bool a[10];
    for (int i=0;i<10;i++) a[i]=false;
    int counter=0,z=0;
    for (int i=0;i<s.length();i++)
        if (s[i]-'0'>=0 && s[i]-'0'<10)
            a[s[i]-'0']=true;
    for (int i=0;i<10;i++) if (a[i]) z++;
    int n,n1;
    cin >> n;

    n1=n;
    int k=0;
    if (n==0)
    {
        cout << "0" << '\n';
        return 0;
    }
    if (n<10)
    {
        int oo=0;
        for (int i=0;i<n;i++) if (!a[i]) oo++;
        cout << oo << '\n';
        return 0;
    }
    while (n1!=0)
    {
        k++;
        n1/=10;
    }
    counter+=10-z;
    int razr2;
    if (a[0]) razr2=10-z;
    else razr2=10-z-1;
    razr2*=10-z;
    for (int i=2;i<k;i++)
    {
        counter+=razr2;
        razr2*=10-z;
    }
    n1=n;
    while(n1>=10) n1/=10;
    razr2=0;
    for (int i=1;i<n1;i++) if (!a[i]) razr2++;
    for (int i=1;i<k;i++) razr2*=10-z;
    counter+=razr2;
    for (int i=1;i<k;i++) n1*=10;
    n-=n1;
    k--;
    while (n!=0)
    {
        n1=n;
        while(n1>=10) n1/=10;
        razr2=0;
        for (int i=0;i<n1;i++) if (!a[i]) razr2++;
        for (int i=1;i<k;i++) razr2*=10-z;
        counter+=razr2;
        for (int i=1;i<k;i++) n1*=10;
        n-=n1;
        k--;
    }
    cout << counter << '\n';
    return 0;
}
