#include <bits/stdc++.h>
using namespace std;
int val[100010], n, k;
long long f[100010], fac[100010], ifac[100010], ans = 0;
const long long p = 1e9 + 7;
long long pw(long long a, long long b) {
  long long ret = 1;
  while (b) {
    if (b & 1) ret = ret * a % p;
    a = a * a % p;
    b >>= 1;
  }
  return ret;
}
long long c(long long a, long long b) {
  if (a < b) return 0;
  return fac[a] * ifac[b] % p * ifac[a - b] % p;
}
int main() {
  scanf("%d%d", &n, &k), fac[0] = 1;
  for (int i = 1; i <= n; i++) scanf("%1d", &val[i]);
  for (int i = 1; i <= n; i++) fac[i] = fac[i - 1] * i % p;
  ifac[n] = pw(fac[n], p - 2);
  for (int i = n - 1; ~i; i--) ifac[i] = ifac[i + 1] * (i + 1) % p;
  for (int i = 0; i <= n - 1; i++)
    f[i] = ((i ? f[i - 1] : 0) + pw(10, i) * c(n - i - 2, k - 1) % p) % p;
  for (int i = 1; i <= n; i++) {
    long long tmp =
        ((i == n ? 0 : f[n - i - 1]) + pw(10, n - i) * c(i - 1, k) % p) % p;
    ans = (ans + val[i] * tmp) % p;
  }
  cout << ans << endl;
  return 0;
}
