#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
#define fi first
#define se second
#define pp push_back
#define all(x) (x).begin(), (x).end()
#define Ones(n) __builtin_popcount(n)
#define endl '\n'
#define mem(arrr, xx) memset(arrr,xx,sizeof arrr)
//#define int long long
#define debug(x) cout << (#x) << " = " << x << endl
void Gamal() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
#ifdef Clion
freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
#endif
}
int dx[] = {+0, +0, -1, +1, +1, +1, -1, -1};
int dy[] = {-1, +1, +0, +0, +1, -1, +1, -1};
const double EPS = 1e-9;
const ll OO = 0X3F3F3F3F3F3F3F3F;
const int N = 1e5 + 5, INF = INT_MAX, MOD = 1e9 + 7, LOG = 20;
int sum(int x) {
int ret = 0;
while (x) {
ret += x % 10;
x /= 10;
}
return ret;
}
struct AhoCorasick {
int states = 0;
vector<int> pi;
vector<int> dep;
vector<vector<int>> trie, patterns;
vector<vector<int>> dp;
vector<bool> bad;
AhoCorasick(){}
AhoCorasick(int n, int m = 10) {
pi = vector<int>(n + 10, -1);
patterns = vector<vector<int>>(n + 10);
trie = vector<vector<int>>(n + 10, vector<int>(m, -1));
}
AhoCorasick(vector<string> &p, int n, int m = 10) {
/*
* MAKE SURE THAT THE STRINGS IN P ARE UNIQUE
* N is the summation of sizes of p
* M is the number of used alphabet
*/
dep = vector<int>(n + 10, 0);
pi = vector<int>(n + 10, -1);
bad = vector<bool>(n + 10, false);
patterns = vector<vector<int>>(n + 10);
trie = vector<vector<int>>(n + 10, vector<int>(m, -1));
dp = vector<vector<int>>(n + 10, vector<int>(m, -1));
for (int i = 0; i < p.size(); i++)
insert(p[i]);
build();
}
void insert(string &s) {
int cur = 0, d = 0;
for (auto &it: s) {
if (trie[cur][it - '0'] == -1)
trie[cur][it - '0'] = ++states;
cur = trie[cur][it - '0'];
dep[cur] = ++d;
}
bad[cur] = true;
}
int nextState(int trieNode, int nxt) {
int cur = trieNode;
while (trie[cur][nxt] == -1)
cur = pi[cur];
return trie[cur][nxt];
}
void build() {
queue<int> q;
for (int i = 0; i < 10; i++) {
if (trie[0][i] != -1)
pi[trie[0][i]] = 0, q.push(trie[0][i]);
else
trie[0][i] = 0;
}
while (q.size()) {
int cur = q.front();
q.pop();
for (int i = 0; i < 10; i++) {
if (trie[cur][i] == -1)
continue;
int f = nextState(pi[cur], i);
pi[trie[cur][i]] = f;
patterns[trie[cur][i]].insert(patterns[trie[cur][i]].end(), patterns[f].begin(), patterns[f].end());
q.push(trie[cur][i]);
}
}
}
int getNext(int node, char c) {
if (node == -1)return 0;
int &ret = dp[node][c - '0'];
if (~ret)return ret;
if (~trie[node][c - '0'])return ret = trie[node][c - '0'];
else return ret = getNext(pi[node], c);
}
};
AhoCorasick T;
string n;
int k;
int dp[N][420];
int slv(int i, int node) {
if (i == n.size())return 0;
int &ret = dp[i][node];
if (~ret)return ret;
ret = 1 + slv(i + 1, node);
if (T.dep[node] == k) {
node = max(T.pi[node], 0);
}
int nxt = T.getNext(node, n[i]);
if (!T.bad[nxt]) {
ret = min(ret, slv(i + 1, nxt));
}
return ret;
}
void solve() {
int sz;
cin >> sz >> k;
cin >> n;
int ans = 0;
string ns;
for (int i = 0; i < n.size(); ++i) {
if (n[i] == '1')ans++;
else ns += n[i];
}
n.swap(ns);
if (n.empty()) {
cout << ans << endl;
return;
}
mem(dp, -1);
ans += slv(0, 0);
cout << ans << endl;
}
signed main() {
Gamal();
vector<string> v;
for (int i = 1; i <= 999999; ++i) {
string x = to_string(i);
if (find(all(x), '1') != x.end())continue;
int s = sum(i);
if (i % (s * s * s) == 0) {
v.emplace_back(x);
}
}
sort(all(v), [&](string &a, string &b) {
return a.size() < b.size();
});
set<string> k;
auto check = [&](string &s) {
for (int i = 0; i < s.size(); ++i) {
for (int j = i; j < s.size(); ++j) {
if (k.count(s.substr(i, j - i + 1)))return true;
}
}
return false;
};
vector<string> tot;
for (auto &s: v) {
if (check(s))continue;
tot.emplace_back(s);
k.insert(s);
}
T = AhoCorasick(tot, 420);
int t = 1;
// cin >> t;
while (t--) {
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcHAgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSBPbmVzKG4pIF9fYnVpbHRpbl9wb3Bjb3VudChuKQojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIG1lbShhcnJyLCB4eCkgbWVtc2V0KGFycnIseHgsc2l6ZW9mIGFycnIpCi8vI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZGVidWcoeCkgY291dCA8PCAoI3gpIDw8ICIgPSAiIDw8IHggPDwgZW5kbAoKdm9pZCBHYW1hbCgpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKI2lmZGVmIENsaW9uCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKSwgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0KCmludCBkeFtdID0geyswLCArMCwgLTEsICsxLCArMSwgKzEsIC0xLCAtMX07CmludCBkeVtdID0gey0xLCArMSwgKzAsICswLCArMSwgLTEsICsxLCAtMX07Cgpjb25zdCBkb3VibGUgRVBTID0gMWUtOTsKY29uc3QgbGwgT08gPSAwWDNGM0YzRjNGM0YzRjNGM0Y7CmNvbnN0IGludCBOID0gMWU1ICsgNSwgSU5GID0gSU5UX01BWCwgTU9EID0gMWU5ICsgNywgTE9HID0gMjA7CgppbnQgc3VtKGludCB4KSB7CiAgICBpbnQgcmV0ID0gMDsKICAgIHdoaWxlICh4KSB7CiAgICAgICAgcmV0ICs9IHggJSAxMDsKICAgICAgICB4IC89IDEwOwogICAgfQogICAgcmV0dXJuIHJldDsKfQoKCnN0cnVjdCBBaG9Db3Jhc2ljayB7CiAgICBpbnQgc3RhdGVzID0gMDsKICAgIHZlY3RvcjxpbnQ+IHBpOwogICAgdmVjdG9yPGludD4gZGVwOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiB0cmllLCBwYXR0ZXJuczsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZHA7CiAgICB2ZWN0b3I8Ym9vbD4gYmFkOwogICAgQWhvQ29yYXNpY2soKXt9CiAgICBBaG9Db3Jhc2ljayhpbnQgbiwgaW50IG0gPSAxMCkgewogICAgICAgIHBpID0gdmVjdG9yPGludD4obiArIDEwLCAtMSk7CiAgICAgICAgcGF0dGVybnMgPSB2ZWN0b3I8dmVjdG9yPGludD4+KG4gKyAxMCk7CiAgICAgICAgdHJpZSA9IHZlY3Rvcjx2ZWN0b3I8aW50Pj4obiArIDEwLCB2ZWN0b3I8aW50PihtLCAtMSkpOwogICAgfQoKICAgIEFob0NvcmFzaWNrKHZlY3RvcjxzdHJpbmc+ICZwLCBpbnQgbiwgaW50IG0gPSAxMCkgewogICAgICAgIC8qCiAgICAgICAgICogTUFLRSBTVVJFIFRIQVQgVEhFIFNUUklOR1MgSU4gUCBBUkUgVU5JUVVFCiAgICAgICAgICogTiBpcyB0aGUgc3VtbWF0aW9uIG9mIHNpemVzIG9mIHAKICAgICAgICAgKiBNIGlzIHRoZSBudW1iZXIgb2YgdXNlZCBhbHBoYWJldAogICAgICAgICovCiAgICAgICAgZGVwID0gdmVjdG9yPGludD4obiArIDEwLCAwKTsKICAgICAgICBwaSA9IHZlY3RvcjxpbnQ+KG4gKyAxMCwgLTEpOwogICAgICAgIGJhZCA9IHZlY3Rvcjxib29sPihuICsgMTAsIGZhbHNlKTsKICAgICAgICBwYXR0ZXJucyA9IHZlY3Rvcjx2ZWN0b3I8aW50Pj4obiArIDEwKTsKICAgICAgICB0cmllID0gdmVjdG9yPHZlY3RvcjxpbnQ+PihuICsgMTAsIHZlY3RvcjxpbnQ+KG0sIC0xKSk7CiAgICAgICAgZHAgPSB2ZWN0b3I8dmVjdG9yPGludD4+KG4gKyAxMCwgdmVjdG9yPGludD4obSwgLTEpKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwLnNpemUoKTsgaSsrKQogICAgICAgICAgICBpbnNlcnQocFtpXSk7CiAgICAgICAgYnVpbGQoKTsKICAgIH0KCiAgICB2b2lkIGluc2VydChzdHJpbmcgJnMpIHsKICAgICAgICBpbnQgY3VyID0gMCwgZCA9IDA7CiAgICAgICAgZm9yIChhdXRvICZpdDogcykgewogICAgICAgICAgICBpZiAodHJpZVtjdXJdW2l0IC0gJzAnXSA9PSAtMSkKICAgICAgICAgICAgICAgIHRyaWVbY3VyXVtpdCAtICcwJ10gPSArK3N0YXRlczsKICAgICAgICAgICAgY3VyID0gdHJpZVtjdXJdW2l0IC0gJzAnXTsKICAgICAgICAgICAgZGVwW2N1cl0gPSArK2Q7CiAgICAgICAgfQogICAgICAgIGJhZFtjdXJdID0gdHJ1ZTsKICAgIH0KCiAgICBpbnQgbmV4dFN0YXRlKGludCB0cmllTm9kZSwgaW50IG54dCkgewogICAgICAgIGludCBjdXIgPSB0cmllTm9kZTsKICAgICAgICB3aGlsZSAodHJpZVtjdXJdW254dF0gPT0gLTEpCiAgICAgICAgICAgIGN1ciA9IHBpW2N1cl07CiAgICAgICAgcmV0dXJuIHRyaWVbY3VyXVtueHRdOwogICAgfQoKICAgIHZvaWQgYnVpbGQoKSB7CiAgICAgICAgcXVldWU8aW50PiBxOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykgewogICAgICAgICAgICBpZiAodHJpZVswXVtpXSAhPSAtMSkKICAgICAgICAgICAgICAgIHBpW3RyaWVbMF1baV1dID0gMCwgcS5wdXNoKHRyaWVbMF1baV0pOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB0cmllWzBdW2ldID0gMDsKICAgICAgICB9CgogICAgICAgIHdoaWxlIChxLnNpemUoKSkgewogICAgICAgICAgICBpbnQgY3VyID0gcS5mcm9udCgpOwogICAgICAgICAgICBxLnBvcCgpOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmICh0cmllW2N1cl1baV0gPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBpbnQgZiA9IG5leHRTdGF0ZShwaVtjdXJdLCBpKTsKICAgICAgICAgICAgICAgIHBpW3RyaWVbY3VyXVtpXV0gPSBmOwogICAgICAgICAgICAgICAgcGF0dGVybnNbdHJpZVtjdXJdW2ldXS5pbnNlcnQocGF0dGVybnNbdHJpZVtjdXJdW2ldXS5lbmQoKSwgcGF0dGVybnNbZl0uYmVnaW4oKSwgcGF0dGVybnNbZl0uZW5kKCkpOwogICAgICAgICAgICAgICAgcS5wdXNoKHRyaWVbY3VyXVtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaW50IGdldE5leHQoaW50IG5vZGUsIGNoYXIgYykgewogICAgICAgIGlmIChub2RlID09IC0xKXJldHVybiAwOwogICAgICAgIGludCAmcmV0ID0gZHBbbm9kZV1bYyAtICcwJ107CiAgICAgICAgaWYgKH5yZXQpcmV0dXJuIHJldDsKICAgICAgICBpZiAofnRyaWVbbm9kZV1bYyAtICcwJ10pcmV0dXJuIHJldCA9IHRyaWVbbm9kZV1bYyAtICcwJ107CiAgICAgICAgZWxzZSByZXR1cm4gcmV0ID0gZ2V0TmV4dChwaVtub2RlXSwgYyk7CiAgICB9CgoKfTsKCgpBaG9Db3Jhc2ljayBUOwpzdHJpbmcgbjsKaW50IGs7CmludCBkcFtOXVs0MjBdOwoKaW50IHNsdihpbnQgaSwgaW50IG5vZGUpIHsKICAgIGlmIChpID09IG4uc2l6ZSgpKXJldHVybiAwOwogICAgaW50ICZyZXQgPSBkcFtpXVtub2RlXTsKICAgIGlmICh+cmV0KXJldHVybiByZXQ7CiAgICByZXQgPSAxICsgc2x2KGkgKyAxLCBub2RlKTsKICAgIGlmIChULmRlcFtub2RlXSA9PSBrKSB7CiAgICAgICAgbm9kZSA9IG1heChULnBpW25vZGVdLCAwKTsKICAgIH0KICAgIGludCBueHQgPSBULmdldE5leHQobm9kZSwgbltpXSk7CiAgICBpZiAoIVQuYmFkW254dF0pIHsKICAgICAgICByZXQgPSBtaW4ocmV0LCBzbHYoaSArIDEsIG54dCkpOwogICAgfQogICAgcmV0dXJuIHJldDsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBzejsKICAgIGNpbiA+PiBzeiA+PiBrOwogICAgY2luID4+IG47CiAgICBpbnQgYW5zID0gMDsKICAgIHN0cmluZyBuczsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbi5zaXplKCk7ICsraSkgewogICAgICAgIGlmIChuW2ldID09ICcxJylhbnMrKzsKICAgICAgICBlbHNlIG5zICs9IG5baV07CiAgICB9CiAgICBuLnN3YXAobnMpOwoKICAgIGlmIChuLmVtcHR5KCkpIHsKICAgICAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIG1lbShkcCwgLTEpOwogICAgYW5zICs9IHNsdigwLCAwKTsKICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7Cn0KCgpzaWduZWQgbWFpbigpIHsKICAgIEdhbWFsKCk7CiAgICB2ZWN0b3I8c3RyaW5nPiB2OwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gOTk5OTk5OyArK2kpIHsKICAgICAgICBzdHJpbmcgeCA9IHRvX3N0cmluZyhpKTsKICAgICAgICBpZiAoZmluZChhbGwoeCksICcxJykgIT0geC5lbmQoKSljb250aW51ZTsKICAgICAgICBpbnQgcyA9IHN1bShpKTsKICAgICAgICBpZiAoaSAlIChzICogcyAqIHMpID09IDApIHsKICAgICAgICAgICAgdi5lbXBsYWNlX2JhY2soeCk7CiAgICAgICAgfQogICAgfQogICAgc29ydChhbGwodiksIFsmXShzdHJpbmcgJmEsIHN0cmluZyAmYikgewogICAgICAgIHJldHVybiBhLnNpemUoKSA8IGIuc2l6ZSgpOwogICAgfSk7CiAgICBzZXQ8c3RyaW5nPiBrOwogICAgYXV0byBjaGVjayA9IFsmXShzdHJpbmcgJnMpIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGk7IGogPCBzLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICAgICBpZiAoay5jb3VudChzLnN1YnN0cihpLCBqIC0gaSArIDEpKSlyZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIHZlY3RvcjxzdHJpbmc+IHRvdDsKICAgIGZvciAoYXV0byAmczogdikgewogICAgICAgIGlmIChjaGVjayhzKSljb250aW51ZTsKICAgICAgICB0b3QuZW1wbGFjZV9iYWNrKHMpOwogICAgICAgIGsuaW5zZXJ0KHMpOwogICAgfQogICAgVCA9IEFob0NvcmFzaWNrKHRvdCwgNDIwKTsKCiAgICBpbnQgdCA9IDE7Ci8vICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9Cn0=