n_str = input()
n = int(n_str)
n_digit = len(n_str)
k = int(input())

#割り算のやーつ
MOD = 1000000007

# 二項係数関連.
class COM():
    def __init__(self, MAX, MOD):
        self.MOD = MOD
        self.MAX = MAX
        self.fac = [1] * MAX
        self.finv = [1] * MAX
        inv = [1] * MAX
        for i in range(2, MAX):
            self.fac[i] = self.fac[i - 1] * i % MOD
            inv[i] = MOD - inv[MOD % i] * (MOD // i) % MOD
            self.finv[i] = self.finv[i - 1] * inv[i] % MOD
    def calc_COM(self, n, k):
        if n < k:
            return 0
        if n < 0 or k < 0:
            return 0
        if self.MAX <= n:
            return 0
        return self.fac[n] * (self.finv[k] * self.finv[n - k] % self.MOD) % self.MOD
    def calc_PER(self, n, k):
        if n < k:
            return 0
        if n < 0 or k < 0:
            return 0
        if self.MAX <= n:
            return 0
        return self.fac[n] * self.finv[n - k] % self.MOD
    def calc_FAC(self, n):
        if self.MAX <= n:
            return 0
        return self.fac[n]

com = COM(100, MOD)

ans = 0
# 最大桁数-1の桁の数について.
if(n_digit > k):
    ans += com.calc_COM(n_digit-1, k) * (9 ** k)
# 最大桁の桁の数について.
n_top = int(n_str[0])
if(k-1 <= 0):
    # これで終わりだから自由
    print(ans)
    ans += n_top
else:
    # 最大桁がn_top未満なら残りは自由
    ans += com.calc_COM(n_digit-1, k-1) * (9 ** (k-1)) * (n_top - 1)
    # 最大桁がn_topなら、残りは自由じゃない……
    n_sec = 0
    count = 1
    for nc in n_str[1:]:
        n_sec = int(nc)
        if(n_sec > 0):
            break
        count += 1
    if((n_digit - count) >= k-1):
        # まだ可能性がある！
        left = n_digit - count
        # 次に来る1以上の数字がcountよりも先だったら二つとも自由
        ans += com.calc_COM(left-1, k-1) * (9 ** (k-1))
        # 次の1以上の数字がcountの位置に来る.
        if(k-2 <= 0):
            ans += n_sec # これで終わりだからその下は考えないでいいのじゃ.
        else:
            # 次に来る1以上の数字がcountで、n_sec未満なら残りは自由
            ans += (left-1) * 9 * (n_sec - 1)
            # 次に来る1以上の数字がcountで、n_secと同じなら、残りは自由じゃない……
            sec_count = 1
            n_third = 0
            for nc in n_str[count:]:
                n_third = int(nc)
                if(n_sec > 0):
                    break
                sec_count += 1
            if(left - sec_count >= k - 2):
                # まだ可能性がある！
                left_sec = left - sec_count
                # 最後の数字がcount+sec_countよりも下の位置
                ans += (left_sec-1) * 9
                # 最後の数字がcount+sec_countの位置
                ans += n_third

print(ans)
