#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const int inf = 0x7f7f7f7f;
const int N = 1e5 + 5;
const int mod = 1e9 + 7;
char s[N];
long long p[N];
int jc[N], inv[N], ijc[N];
int mul(int a, int b) { return (long long)a * b % mod; }
int add(int a, int b) {
  a += b;
  if (a > mod) a -= mod;
  return a;
}
long long C(int a, int b) {
  return a < b ? 0 : mul(jc[a], mul(ijc[b], ijc[a - b]));
}
void init() {
  jc[0] = 1;
  for (int i = (1); i < (N); i++) jc[i] = mul(jc[i - 1], i);
  inv[1] = 1;
  for (int i = (2); i < (N); i++) inv[i] = mul(inv[mod % i], mod - mod / i);
  ijc[0] = 1;
  for (int i = (1); i < (N); i++) ijc[i] = mul(ijc[i - 1], inv[i]);
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  int t = 1;
  init();
  p[0] = 0;
  for (int i = (1); i < (n - k + 1); i++)
    p[i] = add(p[i - 1], mul(C(n - i - 1, k - 1), t)), t = mul(t, 10);
  scanf("%s", s);
  int ans = 0;
  t = 1;
  for (int i = (n)-1; i >= 0; i--) {
    ans = add(ans, mul((s[i] - '0'), p[min(n - k, n - i - 1)]));
    if (i >= k) ans = add(ans, mul(mul(s[i] - '0', t), C(i, k)));
    t = mul(t, 10);
  }
  printf("%d\n", ans);
  return 0;
}
