func_code_string: #include <bits/stdc++.h>   using namespace std;   pair<long long, long long> dp[1100][20];   int bitcnt[1100];   long long p10[21];   string a;   int n, k;   pair<long long, long long> dfs(int bi, int pos, int flag, int leading) {     if (pos == -1) return make_pair(0, 1);     if (dp[bi][pos].second != -1 && !flag && !leading) {       return dp[bi][pos];     }     long long ans = 0;     long long cnt = 0;     int upper = (flag ? a[n - pos - 1] -  0  : 9);     for (int i = 0; i <= upper; i++) {       int nextstate = (bi | (1 << i));       if ((bi & (1 << i)) == 0 && !(leading && i == 0)) {         if (bitcnt[nextstate] > k) continue;         pair<long long, long long> p =             dfs(nextstate, pos - 1, flag && (i == upper), leading && (i == 0));         cnt = (cnt + p.second) % 998244353;         ans = (ans +                ((((p.second * i) % 998244353) * p10[pos]) % 998244353 + p.first) %                    998244353) %               998244353;       } else {         pair<long long, long long> p =             dfs(bi, pos - 1, flag && (i == upper), leading && (i == 0));         cnt = (cnt + p.second) % 998244353;         ans = (ans +                ((((p.second * i) % 998244353) * p10[pos]) % 998244353 + p.first) %                    998244353) %               998244353;       }     }     if (!flag && !leading) {       dp[bi][pos] = make_pair(ans % 998244353, cnt % 998244353);     }     return make_pair(ans % 998244353, cnt % 998244353);   }   long long solve(long long num) {     a = to_string(num);     n = (int)a.length();     pair<long long, long long> p = dfs(0, n - 1, 1, 1);     return p.first % 998244353;   }   int main() {     long long l, r;     int i, j;     p10[0] = 1;     for (i = 1; i <= 20; i++) {       p10[i] = (p10[i - 1] * 10) % 998244353;     }     for (i = 0; i < 1100; i++) {       for (j = 0; j < 20; j++) {         dp[i][j] = make_pair(0, -1);       }     }     bitcnt[0] = 0;     bitcnt[1] = 1;     for (i = 2; i < 1100; i++) bitcnt[i] = bitcnt[i - (i & -i)] + 1;     cin >> l >> r >> k;     cout << (solve(r) - solve(l - 1) + 998244353) % 998244353 << endl;     return 0;   }   