#include <bits/stdc++.h>
using namespace std;
int main() {
	//DP
	string N;
	int K;
	cin >> N >> K;
	vector<vector<long long>> dp(N.size(),vector<long long>(K+2));//((0-indexedで)N桁目,ゼロ以外の数(0~KのK+1通り))
	dp.at(0).at(1) = (N.at(0) - '0');//
	dp.at(0).at(0) = 1;//仮処分
	for (size_t i = 1; i < N.size(); i++)
	{
		for (size_t j = 0; j <= K; j++)
		{
			dp.at(i).at(j) += dp.at(i - 1).at(j);//0を足す
			dp.at(i).at(j + 1) += dp.at(i - 1).at(j) * 9;//1~9を足す
			if (i==j) {
				//(0以外)==(桁数)の場合はNを超えるのが怖い
				//cout << dp.at(i).at(j + 1);
				dp.at(i).at(j+1)-= (9LL - long long(N.at(i) - '0'));
				//cout << dp.at(i).at(j + 1);
				//cout << i;
			}

		}
	}
	cout << dp.at(N.size()-1).at(K);
}