func_code_string: #include <bits/stdc++.h>   long long ans, fac[101000], fac_inv[101000], sum, nn;   int n, k, len;   char s[101000];   inline long long C(int x, int y) {     if (x < y || x < 0 || y < 0) return 0;     if (y == 0) return 1;     return fac[x] * fac_inv[y] % 1000000007 * fac_inv[x - y] % 1000000007;   }   inline long long power(long long x, int y) {     long long ret = 1;     for (; y; y >>= 1, x = x * x % 1000000007)       if (y & 1) ret = ret * x % 1000000007;     return ret;   }   int main() {     scanf( %d%d , &n, &k);     scanf( %s , s + 1);     len = strlen(s + 1);     fac[0] = 1;     for (int i = 1; i <= 101000; i++) fac[i] = fac[i - 1] * i % 1000000007;     fac_inv[101000] = power(fac[101000], 1000000007 - 2);     for (int i = 101000 - 1; i + 1; i--)       fac_inv[i] = (i + 1) * fac_inv[i + 1] % 1000000007;     sum = ans = 0;     nn = 1;     for (int i = n, tmp; i; i--) {       tmp = s[i] -  0 ;       ans = (ans + sum * tmp % 1000000007 +              nn * C(i - 1, k) % 1000000007 * tmp % 1000000007) %             1000000007;       sum = (sum + C(i - 2, k - 1) * nn % 1000000007) % 1000000007;       nn = nn * 10 % 1000000007;     }     printf( %I64d n , ans);     return 0;   }   