#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
long long int fat[100010], inv[100010], pot[100010], sum[100010];
long long int fastExp(long long int b, long long int e) {
  long long int ans = 1;
  for (; e; e >>= 1) {
    if (e & 1) ans = (ans * b) % mod;
    b = (b * b) % mod;
  }
  return ans;
}
void pre() {
  fat[0] = inv[0] = pot[0] = 1;
  for (int i = int(1); i < int(100010); i++) {
    fat[i] = (fat[i - 1] * i) % mod;
    inv[i] = (fastExp(fat[i], mod - 2)) % mod;
    pot[i] = (pot[i - 1] * 10LL) % mod;
  }
}
long long int C(int n, int k) {
  if (k > n) return 0;
  return ((fat[n] * inv[k]) % mod * inv[n - k]) % mod;
}
int main() {
  int n, k;
  char s[100010];
  pre();
  while (scanf("%d%d", &n, &k) != EOF) {
    scanf("%s", s);
    for (int i = int(0); i < int(n); i++)
      sum[i] = s[i] - '0' + ((i) ? sum[i - 1] : 0);
    long long int ans = 0;
    for (int i = int(0); i < int(n - 1); i++) {
      ans += ((pot[i] * C(n - i - 2, k - 1)) % mod * sum[n - i - 2]) % mod;
      ans %= mod;
    }
    for (int i = int(0); i < int(n); i++) {
      ans += (((s[i] - '0') * pot[n - i - 1]) % mod * C(i, k)) % mod;
      ans %= mod;
    }
    printf("%I64d\n", ans);
  }
}
