from bisect import bisect_right, bisect_left
from collections import Counter, deque
from functools import lru_cache, reduce
from heapq import heappop, heappush
from itertools import groupby, permutations, combinations, product
from sys import stdin, stderr


# 最大公約数（ユークリッドの互除法）
# Python3.5 で math.gcd()が追加され、
# AtCoder環境と最新環境でパッケージが分かれてしまったので、自分で書いておく
def gcd(x, y):
    return x if y == 0 else gcd(y, x % y)


# 拡張ユークリッド互除法
# 正整数x, y について、a*x + b*y == gcd(x,y)なるa,bを返す。
# 特に、互いに素なるx, yについては a*x + b*y == 1 となる a, b。
def exgcd(x, y):
    if y == 0:
        return 1, 0
    a, b = exgcd(y, x % y)
    return b, a - (x // y) * b


# 最小公倍数
def lcm(x, y):
    m = gcd(x, y)
    return (x // m) * (y // m)


def func(n, k):
    if len(n) == 0:
        return 0
    head = int(n[0])
    tail = 9 * (len(n) - 1)
    if k == 1:
        return head + tail
    ret = func(n[1:len(n)], k-1)
    ret += (head-1) * func("9" * (len(n) - 1), k - 1)
    # print(ret)
    for i in range(len(n) - 2):
        ret += 9 * func("9" * (len(n) - 2 - i), k - 1)
    return ret


def main():
    n = input()
    k = int(input())
    return func(n, k)


if __name__ == "__main__":
    print(main())