#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
const int MX=4e5+7;
const int mod=9901;
using namespace std;
int p[MX],k[MX];
ll qpow(ll a,ll b,ll MOD=mod){for(ll ans=1;;a=a*a%MOD,b>>=1){if(b&1)ans=ans*a%MOD;if(!b)return ans;}}
ll inv(ll a,ll MOD=mod){return qpow(a,MOD-2,MOD);}
ll __gcm(ll a,ll b){return a*b/__gcd(a,b);}
map<string,int>mp;
int a[MX];
ll __C(ll n,ll m)
{
    if(n<m)return 0;
    if(m==1)return n;
    else {
        return 9*n*(n-1)/2;
    }
}
int __get(int n,int m,int k)
{
    //if(m==0)m=1;
    if(k==0)return m;
    return m*9*__C(n,k);
}
int main()
{
  ios::sync_with_stdio(0),cin.tie(0);
  string s;
  int k;
  cin>>s>>k;
  ll sum=0;
  ll res=0;
  int n=s.length();
  if(res==k)sum++;
  for(int i=0;i<n-1;i++)
   {
       sum+=__get(i,9,k-1);
     //cout<<sum<<endl;
   }
   //cout<<sum<<endl;
  for(int i=0;i<n;i++)
  {
      if(k){
       // if(i>0)s[i]++;
        sum+=__get(n-i-1,s[i]-'0'-1,k-1);
        if(i>0)
        {
            sum+=__get(n-i-1,1,k);
        }
      //  cout<<n-i-1<<" "<<s[i]-'0'-1<<" "<<k-1<<endl;
       // cout<<sum<<endl;
        k--;

      }
  }
  cout<<sum+1<<endl;
}
