#include <bits/stdc++.h>
using namespace std;
char s[100000 + 5];
long long a[100000 + 5], sum[100000 + 5], inv[100000 + 5], fac[100000 + 5],
    ten[100000 + 5];
int n, k;
long long Getinv(long long x) {
  int n = 1000000007 - 2;
  long long ans = 1LL, base = x;
  while (n) {
    if (n & 1) ans = ans * base % 1000000007;
    base = base * base % 1000000007;
    n >>= 1;
  }
  return ans;
}
void Prepare() {
  fac[0] = inv[0] = 1LL;
  for (int i = 1; i <= n; i++) fac[i] = fac[i - 1] * (long long)i % 1000000007;
  for (int i = 1; i <= n; i++) inv[i] = Getinv(fac[i]);
  ten[0] = 1LL;
  for (int i = 1; i <= n; i++) ten[i] = ten[i - 1] * 10LL % 1000000007;
}
long long Getc(int n, int m) {
  if (n < m) return 0LL;
  return fac[n] * inv[m] % 1000000007 * inv[n - m] % 1000000007;
}
int main() {
  scanf("%d%d", &n, &k);
  Prepare();
  sum[0] = 0LL;
  scanf("%s", s);
  for (int i = 1; i <= n; i++) {
    a[i] = (long long)(s[i - 1] - '0');
    sum[i] = sum[i - 1] + a[i];
  }
  long long ans = 0LL;
  for (int l = 0; l <= n - 2; l++) {
    long long x = sum[n - 1 - l] * ten[l] % 1000000007;
    ans = (ans + (x * Getc(n - l - 2, k - 1) % 1000000007)) % 1000000007;
  }
  for (int i = 1; i <= n; i++)
    ans = (ans + ten[n - i] * a[i] % 1000000007 * Getc(i - 1, k) % 1000000007) %
          1000000007;
  cout << ans << endl;
  return 0;
}
