#include <bits/stdc++.h>
using namespace std;
int n, k, fac[100000 + 5], inv[100000 + 5], p[100000 + 5], s[100000 + 5];
inline int c(int x, int y) {
  return x < y ? 0
               : (long long)fac[x] * inv[y] % 1000000007 * inv[x - y] %
                     1000000007;
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k);
  fac[0] = 1;
  for (int i = 1; i <= (n); i++)
    fac[i] = (long long)fac[i - 1] * i % 1000000007;
  inv[0] = inv[1] = 1;
  for (int i = 1; i <= (n); i++)
    inv[i] =
        (long long)inv[i - 1000000007 % i] * (1000000007 / i + 1) % 1000000007;
  for (int i = 1; i <= (n); i++)
    inv[i] = (long long)inv[i] * inv[i - 1] % 1000000007;
  p[0] = 1;
  for (int i = 1; i <= (n); i++) p[i] = (long long)p[i - 1] * 10 % 1000000007;
  for (int i = 1; i <= (n); i++) {
    char ch = getchar();
    while (ch < '0' || ch > '9') ch = getchar();
    s[i] = s[i - 1] + ch - '0';
  }
  int ans = 0;
  for (int i = 1; i <= (n); i++)
    (ans += (long long)p[n - i] * (s[i] - s[i - 1]) % 1000000007 * c(i - 1, k) %
            1000000007) %= 1000000007;
  for (int i = 0; i <= (n - 1); i++)
    (ans += (long long)p[i] * c(n - 1 - i - 1, k - 1) % 1000000007 *
            s[n - i - 1] % 1000000007) %= 1000000007;
  cout << ans << endl;
  return 0;
}
