#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> dp;
/*
we can use dynamic programming to solve this problem.
Observation: Any number in the final expression cannot have more than four
digits because the maximum value of y is 5000.
example:
x = 12341020
solve("12341020", y, 0):
choices for current state: 1, 12, 123, 1234
Time Complexity: O(n * y)
n is length of x
Space Complexity: O(n * y)
*/
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++) {
// stoi function converts string to integer
int num = stoi(x.substr(idx, i - idx + 1));
ans = min(ans, solve(x, y - num, i + 1) + (i < x.length() - 1));
// not counting plus operator for the last number by checking (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;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gZHA7CgovKgogIHdlIGNhbiB1c2UgZHluYW1pYyBwcm9ncmFtbWluZyB0byBzb2x2ZSB0aGlzIHByb2JsZW0uCiAgT2JzZXJ2YXRpb246IEFueSBudW1iZXIgaW4gdGhlIGZpbmFsIGV4cHJlc3Npb24gY2Fubm90IGhhdmUgbW9yZSB0aGFuIGZvdXIgCiAgZGlnaXRzIGJlY2F1c2UgdGhlIG1heGltdW0gdmFsdWUgb2YgeSBpcyA1MDAwLiAKICBleGFtcGxlOgogIHggPSAxMjM0MTAyMAogIHNvbHZlKCIxMjM0MTAyMCIsIHksIDApOgogICAgY2hvaWNlcyBmb3IgY3VycmVudCBzdGF0ZTogMSwgMTIsIDEyMywgMTIzNAogIAogIFRpbWUgQ29tcGxleGl0eTogTyhuICogeSkKICBuIGlzIGxlbmd0aCBvZiB4CiAgU3BhY2UgQ29tcGxleGl0eTogTyhuICogeSkKKi8KCmludCBzb2x2ZShzdHJpbmcgJngsIGludCB5LCBpbnQgaWR4KSB7CiAgaWYgKHkgPCAwKSByZXR1cm4gMTAwMDsKICBpZiAoaWR4ID09IHgubGVuZ3RoKCkpIHJldHVybiAoeSA9PSAwID8gMCA6IDEwMDApOwoKICBpZiAoZHBbaWR4XVt5XSAhPSAtMSkgcmV0dXJuIGRwW2lkeF1beV07CgogIGludCBhbnMgPSAxMDAwOwogIGZvciAoaW50IGkgPSBpZHg7IGkgPCBtaW4oaWR4ICsgNCwgKGludCApeC5sZW5ndGgoKSk7IGkrKykgewogICAgLy8gc3RvaSBmdW5jdGlvbiBjb252ZXJ0cyBzdHJpbmcgdG8gaW50ZWdlcgogICAgaW50IG51bSA9IHN0b2koeC5zdWJzdHIoaWR4LCBpIC0gaWR4ICsgMSkpOwogICAgCiAgICBhbnMgPSBtaW4oYW5zLCBzb2x2ZSh4LCB5IC0gbnVtLCBpICsgMSkgKyAoaSA8IHgubGVuZ3RoKCkgLSAxKSk7CiAgICAvLyBub3QgY291bnRpbmcgcGx1cyBvcGVyYXRvciBmb3IgdGhlIGxhc3QgbnVtYmVyIGJ5IGNoZWNraW5nIChpIDwgeC5sZW5ndGgoKSAtIDEpCiAgfQoKICByZXR1cm4gZHBbaWR4XVt5XSA9IGFuczsKfSAKCmludCBtYWluKCkgewogIHN0cmluZyB4OyBjaW4gPj4geDsKICBpbnQgeTsgY2luID4+IHk7CiAgaW50IG4gPSB4Lmxlbmd0aCgpOwogIGRwID0gdmVjdG9yPHZlY3RvcjxpbnQ+PiAobiwgdmVjdG9yPGludD4gKHkgKyAxLCAtMSkpOwogIGludCBhbnMgPSBzb2x2ZSh4LCB5LCAwKTsKICBpZiAoYW5zID09IDEwMDApIGNvdXQgPDwgLTE7CiAgZWxzZSBjb3V0IDw8IGFuczsKICByZXR1cm4gMDsKfQ==