#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int rem = 1e9 + 7;
long long ans, ps[maxn], fact[maxn], inv[maxn];
int n, k;
long long bpow(int a, int b) {
  if (b == 0) return 1;
  long long tmp = bpow(a, b / 2);
  tmp *= tmp;
  tmp %= rem;
  if (b % 2) tmp *= a;
  tmp %= rem;
  return tmp;
}
void init() {
  fact[0] = 1;
  for (int i = 0; i < maxn - 1; i++) fact[i + 1] = fact[i] * (i + 1) % rem;
  inv[maxn - 1] = bpow(fact[maxn - 1], rem - 2);
  for (int i = maxn - 1; i > 0; i--) inv[i - 1] = inv[i] * i % rem;
}
long long choose(int b, int a) {
  if (a - b < 0) return 0;
  return (fact[a] * bpow(fact[b], rem - 2)) % rem * bpow(fact[a - b], rem - 2) %
         rem;
}
int main() {
  string s;
  cin >> n >> k >> s;
  init();
  for (int i = 0; i < n; i++) ps[i + 1] = ps[i] + s[i] - '0';
  for (int i = 0; i < n; i++) {
    ans += (choose(k, n - i - 1) * (s[n - 1 - i] - '0') % rem +
            choose(k - 1, n - i - 2) * ps[n - 1 - i] % rem) %
           rem * bpow(10, i) % rem;
    ans %= rem;
  }
  cout << ans << endl;
}
