#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
#pragma comment(linker, "/STACK:102400000,102400000")
const double eps = 1e-9;
const long long mod = 1e9 + 7;
long long f[100010], g[100010];
long long shi[100010];
long long d[100010];
char p[100010];
int n, k;
long long inv(long long a, long long mod) {
  return a == 1 ? 1 : (mod - mod / a) * inv(mod % a, mod) % mod;
}
void init() {
  f[0] = 1;
  for (long long i = 1; i <= n; i++) f[i] = f[i - 1] * i % mod;
  g[n] = inv(f[n], mod);
  for (long long i = n - 1; i >= 0; i--) g[i] = g[i + 1] * (i + 1) % mod;
}
long long C(int a, int b) {
  if (b > a) return 0;
  return f[a] * g[b] % mod * g[a - b] % mod;
}
int main() {
  cin >> n >> k;
  cin >> p;
  init();
  shi[0] = 1;
  for (int i = 1; i < n; i++) shi[i] = shi[i - 1] * 10 % mod;
  d[0] = C(n - 2, k - 1);
  for (int i = 1; i < n; i++)
    d[i] = (d[i - 1] + shi[i] * C(n - 2 - i, k - 1) % mod) % mod;
  long long ans = 0;
  for (int i = n - 1; i >= 0; i--) {
    long long t = p[i] - '0';
    int l = n - i - 1;
    ans = (ans + t * shi[l] % mod * C(n - 1 - l, k) % mod) % mod;
    if (n - 2 - i >= 0) ans = (ans + d[n - 2 - i] * t % mod) % mod;
  }
  cout << ans << endl;
}
