#include <bits/stdc++.h>
using namespace std;
char a[100007];
int sum[100007], c[100007], jie[100007], fs[100007], n, k, ss[100007],
    _c[100007];
long long f[100007];
int Power(int x) {
  int bas = x, p = 1000000007 - 2;
  x = 1;
  while (p) {
    if (p & 1) x = (long long)x * bas % 1000000007;
    bas = (long long)bas * bas % 1000000007;
    p >>= 1;
  }
  return x;
}
int main() {
  scanf("%d%d", &n, &k);
  scanf("%s", a);
  for (int i = 1; i <= n; i++)
    sum[i] = ((long long)sum[i - 1] * 10 + a[i - 1] - '0') % 1000000007,
    ss[i] = ss[i - 1] + a[i - 1] - '0';
  int bb = 1;
  for (int i = n; i; i--) {
    fs[i] = (fs[i + 1] + (long long)(a[i - 1] - '0') * bb) % 1000000007;
    bb = (long long)bb * 10 % 1000000007;
  }
  for (int i = 2; i < n; i++) f[1] += a[i - 1] - '0', f[1] %= 1000000007;
  jie[0] = 1;
  for (int i = 1; i <= n; i++) jie[i] = (long long)jie[i - 1] * i % 1000000007;
  c[k - 2] = 1;
  for (int i = k - 1; i <= n; i++)
    c[i] = (long long)c[i - 1] * Power(i - k + 2) % 1000000007 * i % 1000000007;
  _c[k - 1] = 1;
  for (int i = k; i <= n; i++)
    _c[i] =
        (long long)_c[i - 1] * Power(i - k + 1) % 1000000007 * i % 1000000007;
  int bas = 10;
  long long ANS = 0;
  if (k == n - 1)
    ANS = ss[n];
  else if (k == 0)
    ANS = sum[n];
  else {
    ANS += (long long)f[1] * c[n - 3];
    for (int i = 2; i < n - 1; i++) {
      f[i] = (f[i - 1] + (long long)ss[n - i] * bas - sum[i]) % 1000000007;
      ANS += (long long)f[i] * c[n - i - 2] % 1000000007;
      ANS %= 1000000007;
      bas = (long long)bas * 10 % 1000000007;
    }
    for (int i = 1; i < n; i++) {
      ANS += (long long)sum[i] * _c[n - i - 1] % 1000000007;
      ANS %= 1000000007;
    }
    for (int i = 2; i <= n; i++) {
      ANS += (long long)fs[i] * _c[i - 2] % 1000000007;
      ANS %= 1000000007;
    }
    if (ANS < 0) ANS += 1000000007;
  }
  cout << ANS;
}
