#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> dp;
int solve(string &x, int y, int idx) {
if (y < 0) return 1000;
if (idx == x.length()) return (y == 0 ? 0 : 1000);
if (dp[idx][y] != -1) return dp[idx][y];
int ans = 1000;
for (int i = idx; i < min(idx + 4, (int )x.length()); i++) {
int num = stoi(x.substr(idx, i - idx + 1));
ans = min(ans, solve(x, y - num, i + 1) + (i < x.length() - 1));
}
return dp[idx][y] = ans;
}
int main() {
string x; cin >> x;
int y; cin >> y;
int n = x.length();
dp = vector<vector<int>> (n, vector<int> (y + 1, -1));
int ans = solve(x, y, 0);
if (ans == 1000) cout << -1;
else cout << ans;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gZHA7CgppbnQgc29sdmUoc3RyaW5nICZ4LCBpbnQgeSwgaW50IGlkeCkgewogIGlmICh5IDwgMCkgcmV0dXJuIDEwMDA7CiAgaWYgKGlkeCA9PSB4Lmxlbmd0aCgpKSByZXR1cm4gKHkgPT0gMCA/IDAgOiAxMDAwKTsKCiAgaWYgKGRwW2lkeF1beV0gIT0gLTEpIHJldHVybiBkcFtpZHhdW3ldOwoKICBpbnQgYW5zID0gMTAwMDsKICBmb3IgKGludCBpID0gaWR4OyBpIDwgbWluKGlkeCArIDQsIChpbnQgKXgubGVuZ3RoKCkpOyBpKyspIHsKCiAgICBpbnQgbnVtID0gc3RvaSh4LnN1YnN0cihpZHgsIGkgLSBpZHggKyAxKSk7CiAgICAKICAgIGFucyA9IG1pbihhbnMsIHNvbHZlKHgsIHkgLSBudW0sIGkgKyAxKSArIChpIDwgeC5sZW5ndGgoKSAtIDEpKTsKCiAgfQoKICByZXR1cm4gZHBbaWR4XVt5XSA9IGFuczsKfSAKCmludCBtYWluKCkgewogIHN0cmluZyB4OyBjaW4gPj4geDsKICBpbnQgeTsgY2luID4+IHk7CiAgaW50IG4gPSB4Lmxlbmd0aCgpOwogIGRwID0gdmVjdG9yPHZlY3RvcjxpbnQ+PiAobiwgdmVjdG9yPGludD4gKHkgKyAxLCAtMSkpOwogIGludCBhbnMgPSBzb2x2ZSh4LCB5LCAwKTsKICBpZiAoYW5zID09IDEwMDApIGNvdXQgPDwgLTE7CiAgZWxzZSBjb3V0IDw8IGFuczsKICByZXR1cm4gMDsKfQ==