#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;
}
