#include <bits/stdc++.h>
using namespace std;
string s;
int K;
long long dp[20][2][20][11][2][2];
bool vis[20][2][20][11][2][2];
long long dfs(int pos, int tight, int cnt, int last, int found, int started) {
if (pos == (int)s.size())
return found;
long long &res = dp[pos][tight][cnt][last][found][started];
if (vis[pos][tight][cnt][last][found][started]) return res;
vis[pos][tight][cnt][last][found][started] = true;
res = 0;
int limit = tight ? (s[pos] - '0') : 9;
for (int d = 0; d <= limit; d++) {
int ntight = tight && (d == limit);
int nstarted = started || (d != 0);
int ncnt = cnt, nfound = found;
if (!nstarted) {
ncnt = 0;
} else {
if (started && d == last) ncnt = cnt + 1;
else ncnt = 1;
if (ncnt >= K) nfound = 1;
}
res += dfs(pos + 1, ntight, ncnt, nstarted ? d : 10, nfound, nstarted);
}
return res;
}
long long solve(long long n) {
if (n < 0) return 0;
s = to_string(n);
memset(vis, 0, sizeof(vis));
return dfs(0, 1, 0, 10, 0, 0);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long A, B;
cin >> A >> B >> K;
cout << solve(B) - solve(A - 1);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgczsKaW50IEs7CmxvbmcgbG9uZyBkcFsyMF1bMl1bMjBdWzExXVsyXVsyXTsKYm9vbCB2aXNbMjBdWzJdWzIwXVsxMV1bMl1bMl07Cgpsb25nIGxvbmcgZGZzKGludCBwb3MsIGludCB0aWdodCwgaW50IGNudCwgaW50IGxhc3QsIGludCBmb3VuZCwgaW50IHN0YXJ0ZWQpIHsKICAgIGlmIChwb3MgPT0gKGludClzLnNpemUoKSkKICAgICAgICByZXR1cm4gZm91bmQ7CgogICAgbG9uZyBsb25nICZyZXMgPSBkcFtwb3NdW3RpZ2h0XVtjbnRdW2xhc3RdW2ZvdW5kXVtzdGFydGVkXTsKICAgIGlmICh2aXNbcG9zXVt0aWdodF1bY250XVtsYXN0XVtmb3VuZF1bc3RhcnRlZF0pIHJldHVybiByZXM7CiAgICB2aXNbcG9zXVt0aWdodF1bY250XVtsYXN0XVtmb3VuZF1bc3RhcnRlZF0gPSB0cnVlOwogICAgcmVzID0gMDsKCiAgICBpbnQgbGltaXQgPSB0aWdodCA/IChzW3Bvc10gLSAnMCcpIDogOTsKCiAgICBmb3IgKGludCBkID0gMDsgZCA8PSBsaW1pdDsgZCsrKSB7CiAgICAgICAgaW50IG50aWdodCA9IHRpZ2h0ICYmIChkID09IGxpbWl0KTsKICAgICAgICBpbnQgbnN0YXJ0ZWQgPSBzdGFydGVkIHx8IChkICE9IDApOwogICAgICAgIGludCBuY250ID0gY250LCBuZm91bmQgPSBmb3VuZDsKCiAgICAgICAgaWYgKCFuc3RhcnRlZCkgewogICAgICAgICAgICBuY250ID0gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoc3RhcnRlZCAmJiBkID09IGxhc3QpIG5jbnQgPSBjbnQgKyAxOwogICAgICAgICAgICBlbHNlIG5jbnQgPSAxOwogICAgICAgICAgICBpZiAobmNudCA+PSBLKSBuZm91bmQgPSAxOwogICAgICAgIH0KCiAgICAgICAgcmVzICs9IGRmcyhwb3MgKyAxLCBudGlnaHQsIG5jbnQsIG5zdGFydGVkID8gZCA6IDEwLCBuZm91bmQsIG5zdGFydGVkKTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCmxvbmcgbG9uZyBzb2x2ZShsb25nIGxvbmcgbikgewogICAgaWYgKG4gPCAwKSByZXR1cm4gMDsKICAgIHMgPSB0b19zdHJpbmcobik7CiAgICBtZW1zZXQodmlzLCAwLCBzaXplb2YodmlzKSk7CiAgICByZXR1cm4gZGZzKDAsIDEsIDAsIDEwLCAwLCAwKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgbG9uZyBsb25nIEEsIEI7CiAgICBjaW4gPj4gQSA+PiBCID4+IEs7CiAgICBjb3V0IDw8IHNvbHZlKEIpIC0gc29sdmUoQSAtIDEpOwogICAgcmV0dXJuIDA7Cn0K