#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
int n, k;
long long quick(long long A, long long B) {
  if (B == 0) return 1;
  long long tmp = quick(A, B >> 1);
  tmp *= tmp;
  tmp %= MOD;
  if (B & 1) tmp *= A, tmp %= MOD;
  return tmp;
}
int fact[100000 + 20], invfact[100000 + 20];
int suf[100000 + 20];
int tot;
int rest = 0;
long long c(int A, int B) {
  if (B == 0) return 1;
  if (B < 0) return 0;
  if (A < B) return 0;
  return 1ll * fact[A] * invfact[A - B] % MOD * invfact[B] % MOD;
}
int main() {
  scanf("%d%d", &n, &k);
  string s;
  cin >> s;
  for (int i = n - 1; i >= 1; --i) suf[i] = suf[i + 1] + (s[i - 1] - '0');
  fact[0] = 1;
  for (int i = 1; i <= n; ++i) {
    fact[i] = 1ll * fact[i - 1] * i % MOD;
  }
  invfact[n] = quick(fact[n], MOD - 2);
  for (int i = n - 1; i >= 0; --i)
    invfact[i] = 1ll * invfact[i + 1] * (i + 1) % MOD;
  tot = 0;
  int bad = 0, ten = 1;
  for (int i = 1; i <= n - 2; ++i) {
    tot -= bad;
    tot += MOD;
    tot %= MOD;
    tot = 10ll * tot % MOD;
    bad += 1ll * ten * (s[n - 1 - i] - '0') % MOD;
    bad %= MOD;
    ten = 10ll * ten % MOD;
    (tot += suf[i + 1]) %= MOD;
    (rest += 1ll * tot * c(n - 2 - i, k - 2) % MOD) %= MOD;
  }
  int tmp = 0;
  for (int i = 1; i <= n - 1; ++i) {
    tmp = 10ll * tmp % MOD;
    (tmp += (s[i - 1] - '0')) %= MOD;
    (rest += 1ll * tmp * c(n - 1 - i, k - 1) % MOD) %= MOD;
  }
  int z = 1;
  tmp = 0;
  for (int i = 1; i <= n; ++i) {
    (tmp += 1ll * (s[n - i] - '0') * z % MOD) %= MOD;
    z = 10ll * z % MOD;
    (rest += 1ll * tmp * c(n - 1 - i, k - (i != n)) % MOD) %= MOD;
  }
  cout << rest << endl;
  return 0;
}
