#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100010;
const int MOD = 1e9 + 7;
long long fat[MAXN], inv_fat[MAXN];
long long mod_pow(long long b, int x) {
  if (!x) return 1;
  if (x & 1) return (b * mod_pow(b, x - 1)) % MOD;
  long long tmp = mod_pow(b, x >> 1);
  return (tmp * tmp) % MOD;
}
long long nchoosek(int n, int k) {
  if (k > n) return 0;
  return (((fat[n] * inv_fat[k]) % MOD) * inv_fat[n - k]) % MOD;
}
long long C[MAXN];
char s[MAXN];
int main() {
  fat[0] = inv_fat[0] = 1;
  for (int i = 1; i < MAXN; i++) {
    fat[i] = (i * fat[i - 1]) % MOD;
    inv_fat[i] = mod_pow(fat[i], MOD - 2);
  }
  int n, k;
  while (scanf("%d%d", &n, &k) > 0) {
    scanf("%s", s);
    long long ans = ((s[n - 1] - '0') * nchoosek(n - 1, k)) % MOD;
    C[n] = 0;
    for (int i = n - 1; i >= 1; i--) {
      long long X = (mod_pow(10, n - i) * nchoosek(i - 1, k)) % MOD;
      C[i] = (mod_pow(10, n - i - 1) * nchoosek(i - 1, k - 1)) % MOD;
      C[i] = (C[i] + C[i + 1]) % MOD;
      X = (X + C[i]) % MOD;
      ans = (ans + ((X * (s[i - 1] - '0')) % MOD)) % MOD;
    }
    printf("%lld\n", ans);
  }
}
