#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:100000000")
using namespace std;
const bool db = false;
long long binpow(long long a, long long n, long long c) {
  long long res = 1;
  while (n) {
    if (n & 1) res = (res * a) % c;
    a = (a * a) % c;
    n >>= 1;
  }
  return res % c;
}
long long fact[101000], rfact[101000];
long long c(long long n, long long k) {
  if (k < 0) return 0;
  if (n < k) return 0;
  return (((fact[n] * rfact[k]) % 1000000007) * rfact[n - k]) % 1000000007;
}
long long mas[101000], pref[101000], ten_pow[101000];
int main() {
  long long n, k;
  scanf("%lld %lld\n", &n, &k);
  char c1;
  for (int i = 0; i < n; i++) {
    scanf("%c ", &c1);
    mas[i] = c1 - '0';
  }
  fact[0] = rfact[0] = ten_pow[0] = 1;
  pref[0] = mas[0];
  for (int i = 1; i <= n; i++) {
    fact[i] = (fact[i - 1] * i) % 1000000007;
    pref[i] = (pref[i - 1] + mas[i]) % 1000000007;
    ten_pow[i] = (ten_pow[i - 1] * 10) % 1000000007;
    rfact[i] = binpow(fact[i], 1000000007 - 2, 1000000007);
  }
  long long count = 0;
  for (int i = 0; i < n; i++) {
    if (i < n - 1)
      count +=
          (((ten_pow[i] * c(n - i - 2, k - 1) % 1000000007) * pref[n - i - 2]) %
           1000000007);
    count +=
        (((mas[i] * ten_pow[n - 1 - i]) % 1000000007) * c(i, k) % 1000000007);
  }
  cout << count % 1000000007 << "\n";
  return 0;
}
