#include
#include
using namespace std;
string S;
int k;
int dp[105][105];
bool cmp(string a, string b) {
if(a.size() > b.size()) return false;
if(a.size() < b.size()) return true;
if(a < b) return true;
if(a > b) return false;
if(a == b) return true;
return false;
}
int rec(int at, int k_left) {
if(at == S.size() - 1 and k_left == k) {
return 1;
}
if(at != -1 and dp[at][k_left] != -1) {
return dp[at][k_left];
}
int result = 0;
string tmp = "";
for(int i = at + 1; i < S.size(); i++) {
tmp += S[i];
if(tmp[0] == '0' and tmp.size() >= 2) {
continue;
}
if(cmp(tmp, "255")) {
result += rec(i, k_left + 1);
}
else {
break;
}
}
if(at != -1) {
dp[at][k_left] = result;
}
return result;
}
int main()
{
cin >> S >> k;
for(int i = 0; i < 105; i++) {
for(int j = 0; j < 105; j++) {
dp[i][j] = -1;
}
}
cout << rec(-1, 0) << endl;
return 0;
}
// 1234567 3