import math

N = int(input())
K = int(input())
ans = 0
keta = len(str(N))
a = list(str(N))
def comb(n, k):
	return math.factorial(n) / (math.factorial(k) * math.factorial(n - k))

# N - 1 桁で表現できるとき
if keta >= 2:
	for i in range(1, keta):
		# i 桁の中に、 i - K 個　0 を入れなければいけない
		if i < i - K: continue
		# i - K は正でなけれなばならない
		if i - K <= 0: continue 
		
		# 0 を入れる場所が (i) C (i - K) 箇所ある
		# あとは何が入っても大丈夫
		ans += comb(i, i - K) * (9 ** K)
		
	
# N 桁で表現するとき
# 上1桁の数字が最大値でないならば、もう何でもいい
for i in range(keta):
	need_zero = a[0 : i].count("0")
	if keta - (i + 1) < 0 or keta - K - need_zero < 0 or (keta - (i + 1)) - (keta - K - need_zero) < 0 : continue
	if i == 0:
		ans += (int(str(N)[i]) - 1) * comb(keta - (i + 1), keta - K - need_zero) * (9 ** (K - (i + 1)))
	else:
		print(keta - K - need_zero)
		ans += int(str(N)[i]) * comb(keta - (i + 1), keta - K - need_zero) * (9 ** (K - (i + 1)))
	print(ans)

	
print(ans)