package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
	"strconv"
)

var sc *bufio.Scanner

const BufferSize = 1024

func nextInt() int {
	if !sc.Scan() {
		panic(nil)
	}
	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}
	return i
}

func nextString() string {
	if !sc.Scan() {
		panic(nil)
	}
	return sc.Text()
}

var production bool

func debugf(format string, v ...interface{}) {
	if !production {
		fmt.Printf(format, v...)
	}
}

// 314159
// 9*9*5C2 = 810
// 1*(1+9+9+9+9) = 37
// 2*(9+9+9+9+9) = 90

func solve(n string, k int) int {
	ans := 0
	if k > len(n) {
		return ans
	}
	switch k {
	case 1:
		ans += int(n[0]-'0') + (len(n)-1)*9
	case 2:
		if len(n)-2 > 0 {
			ans += 9 * 9 * (len(n) - 1) * (len(n) - 2) / 2
		}
		f := int(n[0] - '0')
		if f > 1 {
			ans += (f - 1) * (9 * (len(n) - 1))
		}
		ans += int(n[1]-'0') + (9 * (len(n) - 2))
	case 3:
		idx := 0
		f := int(n[idx] - '0')
		if f > 0 {
			ans += 9 * 9 * 9 * (len(n) - 1) * (len(n) - 2) * (len(n) - 3) / 6
		}
		if f > 1 {
			ans += (f - 1) * (9 * 9 * (len(n) - 1) * (len(n) - 2) / 2)
		}
		idx++
		for int(n[idx]-'0') == 0 {
			idx++
			if idx >= len(n)-1 {
				return 0
			}
		}
		f = int(n[idx] - '0')
		ans += 9 * 9 * (len(n) - idx - 1) * (len(n) - idx - 2) / 2
		if f > 1 {
			ans += (f - 1) * (9 * (len(n) - idx - 1))
		}
		idx++
		for int(n[idx]-'0') == 0 {
			idx++
			if idx >= len(n) {
				return 0
			}
		}
		f = int(n[idx] - '0')
		ans += int(n[2]-'0') + (9 * (len(n) - idx - 1))

	case 4:
		if len(n)-3 > 0 {
			ans += 9 * 9 * 9 * (len(n) - 1) * (len(n) - 2) * (len(n) - 3) / 6
		}
		f1 := int(n[0] - '0')
		f2 := int(n[1] - '0')
		if f1 > 1 {
			ans += (f1 - 1) * (9 * 9 * (len(n) - 1) * (len(n) - 2) / 2)
		}
		if f1 > 0 {
			ans += 9 * 9 * (len(n) - 2) * (len(n) - 3) / 2
		}
		if f2 > 1 {
			ans += (f2 - 1) * (9 * (len(n) - 2))
		}
		ans += int(n[2]-'0') + (9 * (len(n) - 3))
	}
	return ans
}

func answer(reader io.Reader, writer io.Writer) {
	sc = bufio.NewScanner(reader)
	buf := make([]byte, BufferSize)
	sc.Buffer(buf, 1e+6)
	sc.Split(bufio.ScanWords)
	n := nextString()
	k := nextInt()

	ans := solve(n, k)

	_, _ = fmt.Fprintf(writer, "%d", ans)
}

func main() {
	production = true
	answer(os.Stdin, os.Stdout)
}
