#include <bits/stdc++.h>
using namespace std;
const int max_N = 100000 + 10;
const long long mod = 1e9 + 7;
long long ans, f[max_N], ps[max_N];
long long pw(long long x, int a) {
  if (a == 0) return 1;
  long long t = pw(x, a / 2);
  t = (t * t) % mod;
  return (t * ((a % 2) ? x : 1)) % mod;
}
long long C(int n, int k) {
  if (k > n) return 0;
  return (f[n] * pw((f[n - k] * f[k]) % mod, mod - 2)) % mod;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n, k;
  string s;
  cin >> n >> k >> s;
  if (!k) {
    long long t(0);
    for (int i = 0; i < n; i++) {
      t = (t * 10) % mod;
      t += (s[i] - '0');
    }
    cout << t << "\n";
    return 0;
  }
  for (int i = 0; i < n; i++) ps[i + 1] = ps[i] + (s[i] - '0');
  f[0] = 1;
  for (int i = 1; i <= n; i++) f[i] = (f[i - 1] * i) % mod;
  for (int i = 0; i < n; i++) {
    long long t =
        ((C(n - i - 2, k - 1) * pw(10, i)) % mod * ps[n - i - 1]) % mod;
    ans = (ans + t) % mod;
    t = ((C(i, k) * pw(10, n - i - 1)) % mod * (s[i] - '0')) % mod;
    ans = (ans + t) % mod;
  }
  cout << ans << "\n";
  return 0;
}
