#include <bits/stdc++.h>
using namespace std;
long long n, k;
long long fac[100010], ifac[100010];
char s[100010];
inline long long Power(long long a, long long b) {
  long long now = 1;
  for (; b; b >>= 1, a = 1ll * a * a % 1000000007)
    if (b & 1) now = 1ll * now * a % 1000000007;
  return now;
}
long long a[100010], f[100010];
inline long long c(long long n, long long m) {
  return 1ll * fac[n] * ifac[m] % 1000000007 * ifac[n - m] % 1000000007;
}
long long Sum[100010];
long long power[100010];
inline long long Change(long long S, long long t) {
  return (Sum[t] - Sum[S - 1] * power[t - S + 1] % 1000000007 + 1000000007) %
         1000000007;
}
int main() {
  scanf("%I64d%I64d", &n, &k);
  scanf("%s", s + 1);
  fac[0] = 1;
  for (long long i = 1; i <= n; i++) fac[i] = 1ll * fac[i - 1] * i % 1000000007;
  ifac[0] = 1;
  ifac[n] = Power(fac[n], 1000000007 - 2);
  for (long long i = n - 1; i; i--)
    ifac[i] = 1ll * ifac[i + 1] * (i + 1) % 1000000007;
  for (long long i = 1; i <= n; i++) a[i] = s[i] - '0';
  for (long long i = 1; i <= n; i++) Sum[i] = a[i];
  power[0] = 1;
  for (int i = 1; i <= n; i++) power[i] = (power[i - 1] * 10ll) % 1000000007;
  for (long long i = 2; i <= n; i++)
    Sum[i] = (Sum[i] + Sum[i - 1] * 10ll % 1000000007) % 1000000007;
  for (long long i = 2; i <= n; i++) (a[i] += a[i - 1]) %= 1000000007;
  f[1] = a[n] % 1000000007;
  for (long long i = 2; i <= n; i++)
    f[i] =
        ((1ll * f[i - 1] * 10ll % 1000000007 + (a[n] - a[i - 1]) % 1000000007) %
             1000000007 -
         1ll * Change(n - i + 2, n) * 10 % 1000000007 + 1000000007) %
        1000000007;
  if (k == 0)
    printf("%I64d\n", f[n]);
  else if (k == 1) {
    long long nowans = 0;
    for (long long i = 1; i <= n - 1; i++)
      (nowans += Change(1, i) + Change(n - i + 1, n)) %= 1000000007;
    printf("%I64d\n", nowans);
  } else {
    long long nowans = 0;
    for (long long i = 1; i <= n - 2 - (k - 2); i++) {
      nowans = (1ll * nowans + 1ll * f[i] * c(n - i - 2, k - 2) % 1000000007) %
               1000000007;
    }
    for (long long i = 1; i <= n - 2 - (k - 2); i++) {
      nowans = ((1ll * nowans -
                 1ll * Change(1, i) * c(n - i - 2, k - 2) % 1000000007 +
                 1000000007) %
                    1000000007 -
                1ll * Change(n - i + 1, n) * c(n - i - 2, k - 2) % 1000000007 +
                1000000007) %
               1000000007;
    }
    for (long long i = 1; i <= n - k; i++) {
      nowans = (1ll * nowans + 1ll * (Change(1, i) + Change(n - i + 1, n)) *
                                   c(n - i - 1, k - 1) % 1000000007) %
               1000000007;
    }
    printf("%I64d\n", nowans);
  }
}
