#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100, MOD = 1000 * 1000 * 1000 + 7;
int n, k, ans, a[N], ps[N], fac[N];
string s;
int sum(int a, int b) {
  a += b;
  if (a >= MOD) a -= MOD;
  return a;
}
int mul(int a, int b) { return 1LL * a * b % MOD; }
int power(int a, int b) {
  if (b == 0) return 1;
  if (b == 1) return a;
  int res = power(a, b >> 1);
  return mul(mul(res, res), power(a, b & 1));
}
int choose(int a, int b) {
  if (a > b) return 0;
  int A = fac[b], B = mul(fac[a], fac[b - a]);
  return mul(A, power(B, MOD - 2));
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  cin >> n >> k >> s;
  fac[0] = 1;
  for (int i = 1; i < N; i++) fac[i] = mul(fac[i - 1], i);
  if (k)
    for (int i = 1; i < N; i++)
      ps[i] = sum(ps[i - 1], mul(power(10, i - 1), choose(k - 1, n - 1 - i)));
  for (int i = 0; i < n; i++) a[n - i - 1] = s[i] - '0';
  for (int i = 0; i < n; i++) ans = sum(ans, mul(a[i], ps[i]));
  memset(ps, 0, sizeof ps);
  ps[0] = a[0];
  for (int i = 1; i < n; i++) ps[i] = sum(ps[i - 1], mul(power(10, i), a[i]));
  if (k)
    for (int i = 0; i < n; i++)
      ans = sum(ans, mul(ps[i], choose(k - 1, n - i - 1 - 1)));
  else
    ans = ps[n - 1];
  cout << ans;
  return 0;
}
