function Main(input) {
    input = input.trim().split("\n").map(function(x) { return x.split(" ")});    
    var N = input[0][0];
    var K = parseInt(input[1][0], 10);
    var l = N.length;
    var ans = 0;
    for (var i = 1; i < l; i++){
        if (i < K) continue;
        if (i === K){
            ans += Math.pow(9, K);
        }
        if (i > K){
            if (K === 1) ans += Math.pow(9, K);
            if (K === 2) ans += Math.pow(9, K) * (i - 1);
            if (K === 3) ans += Math.pow(9, K) * (i - 1) * (i - 2) / 2;
        }
    }

    var v = N.split("").map(e => parseInt(e, 10));
    var whereToStart = l;
    for (var i = 1; i < l; i++){
        if (v[i] !== 0) {
            whereToStart = i;
            break;
        }
    }
    if (K === 1) var addAns = (v[0]);

    if (K === 2){
        var addAns = (v[0] - 1) * 9 * (l - 1);
        for (var i = whereToStart; i < l; i++){
            if (i === whereToStart) {
                addAns += v[i];
                // console.log("here");
            }
            else addAns += 9;
        }
    }
    if (K === 3){
        var addAns = (v[0] - 1) * 81 * (l - 1) * (l - 2) / 2;
        for (var i = whereToStart; i < l; i++){
            var flag1 = false;
            for (var j = i + 1; j < l; j++){
                // console.log("ij", i, j);
                if (i === whereToStart){
                    if (j === whereToStart + 1) {
                        addAns += (v[i] - 1) * 9 + v[j];
                        // console.log("?");
                    }
                    else if (!flag1) {
                        addAns += (v[i] - 1) * 9 + v[j];
                    } else {
                        addAns += (v[i]) * 9;
                    }
                    if (!flag1 && v[j] !== 0) flag1 = true;
                } else { 
                    addAns += 81;
                }
                // console.log(addAns);
            }
        }
    }
    ans += addAns;

    console.log(ans);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8")); 