#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const double eqs = 1e-9;
char st[110000];
int n, k, a[110000], sum[110000];
long long fac[110000], inv_fac[110000];
long long qsm(long long n, long long k) {
  long long ans = 1;
  while (k > 0) {
    if (k & 1) ans = ans * n % mod;
    k >>= 1;
    n = n * n % mod;
  }
  return ans;
}
void init() {
  int i;
  fac[0] = 1;
  for (i = 1; i <= n; i++) {
    fac[i] = fac[i - 1] * i;
    if (fac[i] >= mod) fac[i] %= mod;
  }
  inv_fac[n] = qsm(fac[n], mod - 2);
  for (i = n - 1; i >= 0; i--) {
    inv_fac[i] = inv_fac[i + 1] * (i + 1);
    if (inv_fac[i] >= mod) inv_fac[i] %= mod;
  }
}
long long comb(long long n, long long k) {
  return fac[n] * inv_fac[k] % mod * inv_fac[n - k] % mod;
}
int main() {
  int i;
  long long ans = 0, base = 1, s;
  scanf("%d%d", &n, &k);
  scanf("%s", st + 1);
  init();
  sum[0] = 0;
  for (i = 1; i <= n; i++) {
    a[i] = st[i] - '0';
    sum[i] = a[i] + sum[i - 1];
  }
  for (i = 1; i <= n - k; i++) {
    s = (long long)sum[n - i] * base % mod;
    ans += s * comb(n - i - 1, k - 1) % mod;
    s = (long long)a[n - i + 1] * base % mod;
    ans += s * comb(n - i, k) % mod;
    if (ans >= mod) ans %= mod;
    base = base * 10;
    if (base >= mod) base %= mod;
  }
  printf("%I64d\n", ans);
  return 0;
}
