#include <bits/stdc++.h>
using namespace std;
long long P[100005], A[100005], P1[100005];
long long f1(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % 1000000007;
    x = x * x % 1000000007;
    y >>= 1;
  }
  return res;
}
void Init() {
  A[0] = 1;
  for (int i = 1; i < 100005; i++) A[i] = A[i - 1] * i % 1000000007;
  P[0] = 1;
  for (int i = 1; i < 100005; i++) P[i] = f1(A[i], 1000000007 - 2);
  P1[0] = 1;
  for (int i = 1; i < 100005; i++) P1[i] = P1[i - 1] * 10 % 1000000007;
}
long long C(int x, int y) {
  if (x < y) return 0;
  return A[x] * P[y] % 1000000007 * P[x - y] % 1000000007;
}
int n, k;
char s1[100005];
long long cnt[100005];
int main() {
  Init();
  scanf("%d%d", &n, &k);
  scanf("%s", s1 + 1);
  for (int i = 1; i < n; i++) {
    cnt[i] = C(n - 1 - i, k - 1) * P1[i - 1] % 1000000007;
  }
  for (int i = 1; i < n; i++) cnt[i] += cnt[i - 1];
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    int x = s1[i] - '0';
    ans = (ans + (P1[n - i] * C(i - 1, k) % 1000000007 + cnt[n - i]) %
                     1000000007 * x % 1000000007) %
          1000000007;
  }
  printf("%lld\n", ans);
  return 0;
}
