#include <bits/stdc++.h>
int fact[100009], invFact[100009], s[100009], p10[100009];
int lgput(int a, int n) {
  int r = 1;
  while (n) {
    if (n % 2) r = 1LL * a * r % 1000000007;
    n /= 2;
    a = 1LL * a * a % 1000000007;
  }
  return r;
}
int main() {
  int n, k;
  scanf("%d%d ", &n, &k);
  fact[0] = 1;
  for (int i = 1; i <= n; i++) fact[i] = 1LL * fact[i - 1] * i % 1000000007;
  invFact[n] = lgput(fact[n], 1000000007 - 2);
  for (int i = n - 1; i >= 0; i--)
    invFact[i] = 1LL * invFact[i + 1] * (i + 1) % 1000000007;
  p10[0] = 1;
  for (int i = 1; i <= n; i++) {
    char ch = fgetc(stdin);
    s[i] = s[i - 1] + ch - '0';
    p10[i] = 1LL * p10[i - 1] * 10 % 1000000007;
  }
  int ans = 0;
  for (int i = k + 1; i <= n; i++)
    ans =
        (ans + 1LL * (s[i] - s[i - 1]) * fact[i - 1] % 1000000007 * invFact[k] %
                   1000000007 * invFact[i - k - 1] % 1000000007 * p10[n - i]) %
        1000000007;
  k--;
  if (k >= 0) {
    for (int i = 0; n - i - 2 >= k; i++)
      ans = (ans + 1LL * fact[n - i - 2] * invFact[k] % 1000000007 *
                       invFact[n - i - 2 - k] % 1000000007 * s[n - i - 1] %
                       1000000007 * p10[i]) %
            1000000007;
  }
  printf("%d\n", ans);
  return 0;
}
